Skip to content
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

Initial Update #1

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Initial Update #1

wants to merge 4 commits into from

Conversation

pyup-bot
Copy link

@pyup-bot pyup-bot commented Jan 5, 2018

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.

flake8 3.5.0 » 3.5.0 PyPI | Changelog | Repo
ipython 6.2.1 » 6.2.1 PyPI | Changelog | Homepage
twisted 16.6.0 » 17.9.0 PyPI | Changelog | Homepage | Bugtracker
autobahn 0.13.1 » 17.10.1 PyPI | Changelog | Homepage

Changelogs

flake8 -> 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

2.6.0


  • Requirements Change Switch to pycodestyle as all future pep8 releases
    will use that package name
  • Improvement Allow for Windows users on select versions of Python to
    use --jobs and multiprocessing
  • Improvement Update bounds on McCabe
  • Improvement Update bounds on PyFlakes and blacklist known broken
    versions
  • Improvement Handle new PyFlakes warning with a new error code: F405

2.5.5


  • Bug Fix setuptools integration when parsing config files
  • Bug Don't pass the user's config path as the config_file when creating a
    StyleGuide

2.5.4


  • Bug Missed an attribute rename during the v2.5.3 release.

2.5.3


  • Bug Actually parse output_file and enable_extensions from config
    files

2.5.2


  • Bug Parse output_file and enable_extensions from config files
  • Improvement Raise upper bound on mccabe plugin to allow for version
    0.4.0

2.5.1


  • Bug Properly look for .flake8 in current working directory
    (GitLab103_)
  • Bug Monkey-patch pep8.stdin_get_value to cache the actual value in
    stdin. This helps plugins relying on the function when run with
    multiprocessing. (GitLab105, GitLab107)

.. _GitLab103: https://gitlab.com/pycqa/flake8/issues/103
.. _GitLab105: https://gitlab.com/pycqa/flake8/issues/105
.. _GitLab107: https://gitlab.com/pycqa/flake8/issues/107

2.5.0


  • Improvement Raise cap on PyFlakes for Python 3.5 support
  • Improvement Avoid deprecation warnings when loading extensions
    (GitLab59, GitLab90)
  • Improvement Separate logic to enable "off-by-default" extensions
    (GitLab67_)
  • Bug Properly parse options to setuptools Flake8 command (GitLab!41_)
  • Bug Fix exceptions when output on stdout is truncated before Flake8
    finishes writing the output (GitLab69_)
  • Bug Fix error on OS X where Flake8 can no longer acquire or create new
    semaphores (GitLab74_)

.. _GitLab!41: https://gitlab.com/pycqa/flake8/merge_requests/41
.. _GitLab59: https://gitlab.com/pycqa/flake8/issues/59
.. _GitLab67: https://gitlab.com/pycqa/flake8/issues/67
.. _GitLab69: https://gitlab.com/pycqa/flake8/issues/69
.. _GitLab74: https://gitlab.com/pycqa/flake8/issues/74
.. _GitLab90: https://gitlab.com/pycqa/flake8/issues/90

2.4.1


  • Bug Do not raise a SystemError unless there were errors in the
    setuptools command. (GitLab39, GitLab!23)
  • Bug Do not verify dependencies of extensions loaded via entry-points.
  • Improvement Blacklist versions of pep8 we know are broken

.. _GitLab39: https://gitlab.com/pycqa/flake8/issues/39
.. _GitLab!23: https://gitlab.com/pycqa/flake8/merge_requests/23

2.4.0


  • Bug Print filenames when using multiprocessing and -q option.
    (GitLab31_)
  • Bug Put upper cap on dependencies. The caps for 2.4.0 are:
  • pep8 < 1.6 (Related to GitLab35_)
  • mccabe < 0.4
  • pyflakes < 0.9

See also GitLab32_

  • Bug Files excluded in a config file were not being excluded when flake8
    was run from a git hook. (GitHub2_)
  • Improvement Print warnings for users who are providing mutually
    exclusive options to flake8. (GitLab8, GitLab!18)
  • Feature Allow git hook configuration to live in .git/config.
    See the updated VCS hooks docs_ for more details. (GitLab!20_)

.. _GitHub2: PyCQA/flake8#2
.. _GitLab8: https://gitlab.com/pycqa/flake8/issues/8
.. _GitLab31: https://gitlab.com/pycqa/flake8/issues/31
.. _GitLab32: https://gitlab.com/pycqa/flake8/issues/32
.. _GitLab35: https://gitlab.com/pycqa/flake8/issues/35
.. _GitLab!18: https://gitlab.com/pycqa/flake8/merge_requests/18
.. _GitLab!20: https://gitlab.com/pycqa/flake8/merge_requests/20
.. _VCS hooks docs: https://flake8.readthedocs.org/en/latest/vcs.html

2.3.0


  • Feature: Add --output-file option to specify a file to write to
    instead of stdout.
  • Bug Fix interleaving of output while using multiprocessing
    (GitLab17_)

.. _GitLab17: https://gitlab.com/pycqa/flake8/issues/17

2.2.5


  • Flush standard out when using multiprocessing
  • Make the check for " flake8: noqa" more strict

2.2.4


  • Fix bugs triggered by turning multiprocessing on by default (again)

Multiprocessing is forcibly disabled in the following cases:

  • Passing something in via stdin
  • Analyzing a diff
  • Using windows
  • Fix --install-hook when there are no config files present for pep8 or
    flake8.
  • Fix how the setuptools command parses excludes in config files
  • Fix how the git hook determines which files to analyze (Thanks Chris
    Buccella!)

2.2.3


  • Actually turn multiprocessing on by default

2.2.2


  • Re-enable multiprocessing by default while fixing the issue Windows users
    were seeing.

2.2.1


  • Turn off multiple jobs by default. To enable automatic use of all CPUs, use
    --jobs=auto. Fixes 155 and 154.

2.2.0


  • New option doctests to run Pyflakes checks on doctests too
  • New option jobs to launch multiple jobs in parallel
  • Turn on using multiple jobs by default using the CPU count
  • Add support for python -m flake8 on Python 2.7 and Python 3
  • Fix Git and Mercurial hooks: issues 88, 133, 148 and 149
  • Fix crashes with Python 3.4 by upgrading dependencies
  • Fix traceback when running tests with Python 2.6
  • Fix the setuptools command python setup.py flake8 to read
    the project configuration

2.1.0


  • Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
    mercurial hooks
  • Force git and mercurial hooks to repsect configuration in setup.cfg
  • Only check staged files if that is specified
  • Fix hook file permissions
  • Fix the git hook on python 3
  • Ignore non-python files when running the git hook
  • Ignore .tox directories by default
  • Flake8 now reports the column number for PyFlakes messages

2.0.0


  • Pyflakes errors are prefixed by an F instead of an E
  • McCabe complexity warnings are prefixed by a C instead of a W
  • Flake8 supports extensions through entry points
  • Due to the above support, we require setuptools
  • We publish the documentation <https://flake8.readthedocs.org/>_
  • Fixes 13: pep8, pyflakes and mccabe become external dependencies
  • Split run.py into main.py, engine.py and hooks.py for better logic
  • Expose our parser for our users
  • New feature: Install git and hg hooks automagically
  • By relying on pyflakes (0.6.1), we also fixed 45 and 35

1.7.0


  • Fixes part of 35: Exception for no WITHITEM being an attribute of Checker
    for Python 3.3
  • Support stdin
  • Incorporate phd's builtins pull request
  • Fix the git hook
  • Update pep8.py to the latest version

1.6.2


  • fixed the NameError: global name 'message' is not defined (46)

1.6.1


  • fixed the mercurial hook, a change from a previous patch was not properly
    applied
  • fixed an assumption about warnings/error messages that caused an exception
    to be thrown when McCabe is used

1.6


  • changed the signatures of the check_file function in flake8/run.py,
    skip_warning in flake8/util.py and the check, checkPath
    functions in flake8/pyflakes.py.
  • fix --exclude and --ignore command flags (14, 19)
  • fix the git hook that wasn't catching files not already added to the index
    (29)
  • pre-emptively includes the addition to pep8 to ignore certain lines.
    Add nopep8 to the end of a line to ignore it. (37)
  • check_file can now be used without any special prior setup (21)
  • unpacking exceptions will no longer cause an exception (20)
  • fixed crash on non-existent file (38)

1.5


  • fixed the stdin
  • make sure mccabe catches the syntax errors as warnings
  • pep8 upgrade
  • added max_line_length default value
  • added Flake8Command and entry points if setuptools is around
  • using the setuptools console wrapper when available

1.4


  • git_hook: Only check staged changes for compliance
  • use pep8 1.2

1.3.1


  • fixed support for Python 2.5

1.3


  • fixed false W402 warning on exception blocks.

1.2


  • added a git hook
  • now Python 3 compatible
  • mccabe and pyflakes have warning codes like pep8 now

1.1


  • fixed the value returned by --version
  • allow the flake8: header to be more generic
  • fixed the "hg hook raises 'physical lines'" bug
  • allow three argument form of raise
  • now uses setuptools if available, for 'develop' command

1.0


  • Deactivates by default the complexity checker
  • Introduces the complexity option in the HG hook and the command line.

0.9


  • update pep8 version to 0.6.1
  • mccabe check: gracefully handle compile failure

0.8


  • fixed hg hook
  • discard unexisting files on hook check

0.7


  • Fix pep8 initialization when run through Hg
  • Make pep8 short options work when run through the command line
  • Skip duplicates when controlling files via Hg

0.6


  • Fix the McCabe metric on some loops

ipython -> 6.2.1

6.2.1

None

6.2.0

None

6.1.0

None

6.0.0

None

6.0.0rc1

None

rel-3.0.0
See the release notes for what's new.

or get it with pip:

pip install --upgrade "ipython[all]"

DO NOT download from the "Source code" links below. They are missing git submodules, and won't work.

rel-2.4.1

rel-2.1.0
bugfix release for IPython 2.0. See the list of backported fixes.

rel-1.2.1
Bugfix release for Python 2.6 and 3.4.

What's new in 1.2

rel-1.2.0
IPython 1.2.0 mostly bugfix release

For release notes, see what's new.

rel-1.1.0

1.0

Patches backported to IPython 1.1.0 (2013/08/08 - 2013/09/09)

These lists are automatically generated, and may be incomplete or contain duplicates.

The following 25 authors contributed 337 commits.

  • Benjamin Ragan-Kelley
  • Bing Xia
  • Bradley M. Froehle
  • Brian E. Granger
  • Damián Avila
  • dhirschfeld
  • Dražen Lučanin
  • gmbecker
  • Jake Vanderplas
  • Jason Grout
  • Jonathan Frederic
  • Kevin Burke
  • Kyle Kelley
  • Matt Henderson
  • Matthew Brett
  • Matthias Bussonnier
  • Pankaj Pandey
  • Paul Ivanov
  • rossant
  • Samuel Ainsworth
  • Stephan Rave
  • stonebig
  • Thomas Kluyver
  • Yaroslav Halchenko
  • Zachary Sailer

We closed a total of 76 issues, 58 pull requests and 18 regular issues;
this is the full list (generated with the script :file:tools/github_stats.py):

Pull Requests (58):

  • PR 4188 - Allow user_ns trait to be None
  • PR 4189 - always fire LOCAL_IPS.extend(PUBLIC_IPS)
  • PR 4174 - various issues in markdown and rst templates
  • PR 4178 - add missing data_javascript
  • PR 4181 - nbconvert: Fix, sphinx template not removing new lines from headers
  • PR 4043 - don't 'restore_bytes' in from_JSON
  • PR 4163 - Fix for incorrect default encoding on Windows.
  • PR 4136 - catch javascript errors in any output
  • PR 4171 - add nbconvert config file when creating profiles
  • PR 4125 - Basic exercise of ipython [subcommand] -h and help-all
  • PR 4085 - nbconvert: Fix sphinx preprocessor date format string for Windows
  • PR 4159 - don't split .cell and div.cell CSS
  • PR 4158 - generate choices for --gui configurable from real mapping
  • PR 4065 - do not include specific css in embedable one
  • PR 4092 - nbconvert: Fix for unicode html headers, Windows + Python 2.x
  • PR 4074 - close Client sockets if connection fails
  • PR 4064 - Store default codemirror mode in only 1 place
  • PR 4104 - Add way to install MathJax to a particular profile
  • PR 4144 - help_end transformer shouldn't pick up ? in multiline string
  • PR 4143 - update example custom.js
  • PR 4142 - DOC: unwrap openssl line in public_server doc
  • PR 4141 - add files with a separate add call in backport_pr
  • PR 4137 - Restore autorestore option for storemagic
  • PR 4098 - pass profile-dir instead of profile name to Kernel
  • PR 4120 - support input in Python 2 kernels
  • PR 4088 - nbconvert: Fix coalescestreams line with incorrect nesting causing strange behavior
  • PR 4060 - only strip continuation prompts if regular prompts seen first
  • PR 4132 - Fixed name error bug in function safe_unicode in module py3compat.
  • PR 4121 - move test_kernel from IPython.zmq to IPython.kernel
  • PR 4118 - ZMQ heartbeat channel: catch EINTR exceptions and continue.
  • PR 4054 - use unicode for HTML export
  • PR 4106 - fix a couple of default block values
  • PR 4115 - Update docs on declaring a magic function
  • PR 4101 - restore accidentally removed EngineError
  • PR 4096 - minor docs changes
  • PR 4056 - respect pylab_import_all when --pylab specified at the command-line
  • PR 4091 - Make Qt console banner configurable
  • PR 4086 - fix missing errno import
  • PR 4030 - exclude .git in MANIFEST.in
  • PR 4047 - Use istype() when checking if canned object is a dict
  • PR 4031 - don't close_fds on Windows
  • PR 4029 - bson.Binary moved
  • PR 4035 - Fixed custom jinja2 templates being ignored when setting template_path
  • PR 4026 - small doc fix in nbconvert
  • PR 4016 - Fix IPython.start_* functions
  • PR 4021 - Fix parallel.client.View map() on numpy arrays
  • PR 4022 - DOC: fix links to matplotlib, notebook docs
  • PR 4018 - Fix warning when running IPython.kernel tests
  • PR 4019 - Test skipping without unicode paths
  • PR 4008 - Transform code before %prun/%%prun runs
  • PR 4014 - Fix typo in ipapp
  • PR 3987 - get files list in backport_pr
  • PR 3974 - nbconvert: Fix app tests on Window7 w/ Python 3.3
  • PR 3978 - fix --existing with non-localhost IP
  • PR 3939 - minor checkpoint cleanup
  • PR 3981 - BF: fix nbconvert rst input prompt spacing
  • PR 3960 - Don't make sphinx a dependency for importing nbconvert
  • PR 3973 - logging.Formatter is not new-style in 2.6

Issues (18):

  • 4024 - nbconvert markdown issues
  • 4095 - Catch js error in append html in stream/pyerr
  • 4156 - Specifying --gui=tk at the command line
  • 3818 - nbconvert can't handle Heading with Chinese characters on Japanese Windows OS.
  • 4134 - multi-line parser fails on ''' in comment, qtconsole and notebook.
  • 3998 - sample custom.js needs to be updated
  • 4078 - StoreMagic.autorestore not working in 1.0.0
  • 3990 - Buitlin input doesn't work over zmq
  • 4015 - nbconvert fails to convert all the content of a notebook
  • 4059 - Issues with Ellipsis literal in Python 3
  • 4103 - Wrong default argument of DirectView.clear
  • 4100 - parallel.client.client references undefined error.EngineError
  • 4005 - IPython.start_kernel doesn't work.
  • 4020 - IPython parallel map fails on numpy arrays
  • 3945 - nbconvert: commandline tests fail Win7x64 Py3.3
  • 3977 - unable to complete remote connections for two-process
  • 3980 - nbconvert rst output lacks needed blank lines
  • 3968 - TypeError: super() argument 1 must be type, not classobj (Python 2.6.6)

rel-1.0.0
IPython provides a rich toolkit to help you make the most out of using Python
interactively. Its main components are:

  • Powerful interactive Python shells (terminal- and Qt-based).
  • A web-based interactive notebook environment with all shell features plus
    support for embedded figures, animations and rich media.
  • Support for interactive data visualization and use of GUI toolkits.
  • Flexible, embeddable interpreters to load into your own projects.
  • A high-performance library for high level and interactive parallel computing
    that works in multicore systems, clusters, supercomputing and cloud scenarios.

The enhanced interactive Python shells have the following main features:

  • Comprehensive object introspection.
  • Input history, persistent across sessions.
  • Caching of output results during a session with automatically generated
    references.
  • Extensible tab completion, with support by default for completion of python
    variables and keywords, filenames and function keywords.
  • Extensible system of 'magic' commands for controlling the environment and
    performing many tasks related either to IPython or the operating system.
  • A rich configuration system with easy switching between different setups
    (simpler than changing $PYTHONSTARTUP environment variables every time).
  • Session logging and reloading.
  • Extensible syntax processing for special purpose situations.
  • Access to the system shell with user-extensible alias system.
  • Easily embeddable in other Python programs and GUIs.
  • Integrated access to the pdb debugger and the Python profiler.

The parallel computing architecture has the following main features:

  • Quickly parallelize Python code from an interactive Python/IPython session.
  • A flexible and dynamic process model that be deployed on anything from
    multicore workstations to supercomputers.
  • An architecture that supports many different styles of parallelism, from
    message passing to task farming.
  • Both blocking and fully asynchronous interfaces.
  • High level APIs that enable many things to be parallelized in a few lines
    of code.
  • Share live parallel jobs with other users securely.
  • Dynamically load balanced task farming system.
  • Robust error handling in parallel code.

The latest development version is always available from IPython's GitHub
site
.

twisted -> 17.9.0

17.5.0

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

Bugfixes

  • spawnProcess no longer opens an unwanted console on Windows (5726)
  • The transition to the hyperlink package adds IPv6 support to
    twisted.python.url.URL. This is now deprecated and new code should use
    hyperlink directly (see 9126). (8069)
  • twisted.logger now buffers only 200 events by default (reduced from 65536)
    while waiting for observers to be configured. (8164)
  • The transition of twisted.python.url to using the hyperlink package enables a
    URL.click() with no arguments (or 0-length string argument) to resolve dot
    segments in the path. (8184)
  • twisted.protocols.finger now works on Python 3. (8230)
  • TLS-related tests now pass when run with OpenSSL 1.1.0. This makes tests pass
    again on macOS and Windows, as cryptography 1.8 and later include OpenSSL
    1.1.0. (8898)
  • UNIX socket endpoints now process all messages from recvmsg's ancillary data
    via twisted.internet.unix.Server.doRead/twisted.internet.unix.Client.doRead,
    while discarding and logging ones that don't contain file descriptors.
    (8912)
  • twisted.internet.endpoints.HostnameEndpoint and twisted.web.client.Agent work
    again with reactors that do not provide IReactorPluggableNameResolver. This
    undoes the changes that broke downstream users such as treq.testing. Note
    that passing reactors that do not provide IReactorPluggableNameResolver to
    either is deprecated. (9032)
  • A Python 3 Perspective Broker server which receives a remote call with
    keyword arguments from a Python 2 client will now decode any keys which are
    binary to strings instead of crashing. This fixes interoperability between
    Python 2 Buildbot clients and Python 3 Buildbot servers. (9047)
  • twisted.internet._threadedselect now works on both Python 2 and 3. (9053)
  • twisted.internet.interfaces.IResolverSimple implementers will now always be
    passed bytes, properly IDNA encoded if required, on Python 2. On Python 3,
    they will now be passed correctly IDNA-encoded Unicode forms of the domain,
    taking advantage of the idna library from PyPI if possible. This is to avoid
    Python's standard library (which has an out of date idna module) from mis-
    encoding domain names when non-ASCII Unicode is passed to it. (9137)

Improved Documentation

  • The examples in Twisted howto "Using the Twisted Application Framework",
    section "Customizing twistd logging" have been updated to use latest logging
    modules and syntax (9084)

Features

  • twisted.internet.defer.Deferred.asFuture and
    twisted.internet.defer.Deferred.fromFuture were added, allowing for easy
    transitions between asyncio coroutines (which await Futures) and twisted
    coroutines (which await Deferreds). (8748)
  • twisted.application.internet.ClientService.whenConnected now accepts an
    argument "failAfterFailures". If you set this to 1, the Deferred returned by
    whenConnected will errback when the connection attempt fails, rather than
    retrying forever. This lets you react (probably by stopping the
    ClientService) to connection errors that are likely to be persistent, such as
    using the wrong hostname, or not being connected to the internet at all.
    (9116)
  • twisted.protocols.tls.TLSMemoryBIOProtocol and anything that uses it
    indirectly including the TLS client and server endpoints now enables TLS 1.3
    cipher suites. (9128)

Misc

  • 8133, 8995, 8997, 9003, 9015, 9021, 9026, 9027, 9049, 9057, 9062,
    9065, 9069, 9070, 9072, 9074, 9075, 9111, 9117, 9140, 9144, 9145

Deprecations and Removals

  • twisted.runner.inetdconf.InvalidRPCServicesConfError,
    twisted.runner.inetdconf.RPCServicesConf, twisted.runner.inetdtap.RPCServer,
    and twisted.runner.portmap, deprecated since 16.2.0, have been removed.
    (8464)
  • twisted.python.url and twisted.python._url were modified to rely on
    hyperlink, a new package based on the Twisted URL implementation. Hyperlink
    adds support for IPv6 (fixing 8069), correct username/password encoding,
    better scheme/netloc inference, improved URL.click() behavior (fixing 8184),
    and more. For full docs see hyperlink.readthedocs.io and the CHANGELOG in the
    hyperlink GitHub repo. (9126)

Conch

Bugfixes

  • History-aware terminal protocols like twisted.conch.manhole.Manhole no longer
    raise a TypeError when a user visits a partial line they added to the command
    line history by pressing up arrow before return. (9031)
  • The telnet_echo.tac example had conflicting port callouts between runtime and
    documentation. File was altered to run on documented port, 6023. (9055)

Deprecations and Removals

  • Remove diffie-hellman-group1-sha1 from twisted.conch. See https://weakdh.org/
    (9019)
  • Removed small and obscure elliptic curves from conch. The only curves conch
    supports now are the ones also supported by OpenSSH. (9088)

Mail

Bugfixes

  • twisted.mail.smtp has been ported to Python 3. (8770)

Names

Bugfixes

  • RRHeader now converts its ttl argument to an integer, raising a TypeError if
    it cannot. (8340)

Web

Bugfixes

  • twisted.web.cgi now works on Python 3 (8009)
  • twisted.web.distrib now works on Python 3 (8010)
  • twisted.web.http.HTTPFactory now propagates its reactor's callLater method to
    the HTTPChannel object, rather than having callLater grab the global reactor.
    This prevents the possibility of HTTPFactory logging using one reactor, but
    HTTPChannel running timeouts on another. (8904)

Improved Documentation

  • twisted.web.template.flattenString docstring now correctly references
    io.BytesIO (rather than NativeStringIO). (9028)

Features

  • twisted.web.client now exposes the RequestGenerationFailed exception type.
    (5310)
  • twisted.web.client.Agent will now parse responses that begin with a status
    line that is missing a phrase. (7673)
  • twisted.web.http.HTTPChannel and twisted.web._http2.H2Connection have been
    enhanced so that after they time out they wait a small amount of time to
    allow the connection to close gracefully and, if it does not, they forcibly
    close it to avoid allowing malicious clients to forcibly keep the connection
    open. (8902)

Misc

  • 8981, 9018, 9067, 9090, 9092, 9093, 9096

Words

Deprecations and Removals

  • twisted.words.protocols.oscar, which is client code for Oscar/ICQ, was
    deprecated in 16.2.0 and has now been removed. (9024)

Twisted Core 17.1.0 (2017-02-04)

Features

  • Added a new interface,
    twisted.internet.interfaces.IHostnameResolver, which is an
    improvement to twisted.internet.interfaces.IResolverSimple that
    supports resolving multiple addresses as well as resolving IPv6
    addresses. This is a native, asynchronous, Twisted analogue to
    getaddrinfo. (4362)
  • twisted.web.client.Agent now uses HostnameEndpoint internally; as a
    consequence, it now supports IPv6, as well as making connections
    faster and more reliably to hosts that have more than one DNS name.
    (6712)
  • twisted.internet.ssl.CertificateOptions now has the new constructor
    argument 'raiseMinimumTo', allowing you to increase the minimum TLS
    version to this version or Twisted's default, whichever is higher.
    The additional new constructor arguments 'lowerMaximumSecurityTo'
    and 'insecurelyLowerMinimumTo' allow finer grained control over
    negotiated versions that don't honour Twisted's defaults, for
    working around broken peers, at the cost of reducing the security
    of the TLS it will negotiate. (6800)
  • twisted.internet.ssl.CertificateOptions now sets the OpenSSL
    context's mode to MODE_RELEASE_BUFFERS, which will free the
    read/write buffers on idle TLS connections to save memory. (8247)
  • trial --help-reactors will only list reactors which can be
    imported. (8745)
  • twisted.internet.endpoints.HostnameEndpoint now uses the passed
    reactor's implementation of
    twisted.internet.interfaces.IReactorPluggableResolver to resolve
    hostnames rather than its own deferToThread/getaddrinfo wrapper;
    this makes its hostname resolution pluggable via a public API.
    (8922)
  • twisted.internet.reactor.spawnProcess now does not emit a
    deprecation warning on Unicode arguments. It will encode Unicode
    arguments down to bytes using the filesystem encoding on UNIX and
    Python 2 on Windows, and pass Unicode through unchanged on Python 3
    on Windows. (8941)
  • twisted.trial._dist.test.test_distreporter now works on Python 3.
    (8943)

Bugfixes

  • trial --help-reactors will now display iocp and win32er reactors
    with Python 3. (8745)
  • twisted.logger._flatten.flattenEvent now handles log_format being
    None instead of assuming the value is always a string. (8860)
  • twisted.protocol.ftp is now Python 3 compatible (8865)
  • twisted.names.client.Resolver can now resolve names with IPv6 DNS
    servers. (8877)
  • twisted.application.internet.ClientService now waits for existing
    connections to disconnect before trying to connect again when
    restarting. (8899)
  • twisted.internet.unix.Server.doRead and
    twisted.internet.unix.Client.doRead no longer fail if recvmsg's
    ancillary data contains more than one file descriptor. (8911)
  • twist on Python 3 now correctly prints the help text when given no
    plugin to run. (8918)
  • twisted.python.sendmsg.sendmsg no longer segfaults on Linux +
    Python 2. (8969)
  • IHandshakeListener providers connected via SSL4ClientEndpoint will
    now have their handshakeCompleted methods called. (8973)
  • The twist script now respects the --reactor option. (8983)
  • Fix crash when using SynchronousTestCase with Warning object which
    does not store a string as its first argument (like
    libmysqlclient). (9005)
  • twisted.python.compat.execfile() does not open files with the
    deprecated 'U' flag on Python 3. (9012)

Deprecations and Removals

  • twisted.internet.ssl.CertificateOption's 'method' constructor
    argument is now deprecated, in favour of the new 'raiseMinimumTo',
    'lowerMaximumSecurityTo', and 'insecurelyLowerMinimumTo' arguments.
    (6800)
  • twisted.protocols.telnet (not to be confused with the supported
    twisted.conch.telnet), deprecated since Twisted 2.5, has been
    removed. (8925)
  • twisted.application.strports.parse, as well as the deprecated
    default arguments in strports.service/listen, deprecated since
    Twisted 10.2, has been removed. (8926)
  • twisted.web.client.getPage and twisted.web.client.downloadPage have
    been deprecated in favour of https://pypi.org/project/treq and
    twisted.web.client.Agent. (8960)
  • twisted.internet.defer.timeout is deprecated in favor of
    twisted.internet.defer.Deferred.addTimeout (8971)

Other

  • 7879, 8583, 8764, 8809, 8859, 8906, 8910, 8913, 8916,
    8934, 8945, 8949, 8950, 8952, 8953, 8959, 8962, 8963,
    8967, 8975, 8976, 8993, 9013

Twisted Conch 17.1.0 (2017-02-04)

Features

  • twisted.conch.manhole now works on Python 3. (8327)
  • Twisted Conch now supports ECDH key exchanges. (8730)
  • Add support in twisted.conch.ssh for hmac-sha2-384 (8784)
  • conch and cftp scripts now work on Python 3. (8791)
  • twisted.conch.ssh supports ECDH key exchange. (8811)

Bugfixes

  • twisted.conch.ssh.keys.Key.fromString now supports OpenSSL private
    keys with Windows line endings (\r\n) again (broken since 16.6.0).
    (8928)

Improved Documentation

  • The documentation for
    twisted.conch.endpoints.SSHCommandClientEndpoint.existingConnection
    now describes where the value for the connection parameter might
    come from. (8892)

Other

  • 8890, 8894, 8957, 8958, 8968

Twisted Mail 17.1.0 (2017-02-04)

Deprecations and Removals

  • twisted.mail.tap (the twist plugin for mail) no longer accepts the
    --pop3s option or implicit port numbers to --pop3 and --smtp. This
    functionality has been deprecated since 11.0. (8920)

Twisted Names 17.1.0 (2017-02-04)

Bugfixes

  • twisted.names.authority.BindAuthority has been ported to Python 3.
    (8880)

Twisted News 17.1.0 (2017-02-04)

No significant changes have been made for this release.

Twisted Pair 17.1.0 (2017-02-04)

No significant changes have been made for this release.

Twisted Runner 17.1.0 (2017-02-04)

Bugfixes

  • On Python 3, procmon now handles process output without exceptions
    (8919)

Twisted Web 17.1.0 (2017-02-04)

Features

  • twisted.web.client.Agent now sets Content-Length: 0 for PUT and
    POST requests made without a body producer. (8984)

Bugfixes

  • twisted.web.http.HTTPFactory now times connections out after one
    minute of no data from the client being received, before the
    request is complete, rather than twelve hours. (3746)
  • twisted.web.http.HTTPChannel, the server class for Twisted's
    HTTP/1.1 server, now exerts backpressure against clients that do
    not read responses. This means that if a client stops reading from
    a socket for long enough, Twisted will stop reading further
    requests from that client until it consumes some responses. (8868)
  • twisted.web.http_headers.Headers.getRawHeaders no longer attempts
    to decode the default value when called with a unicode header name.
    (8974)
  • twisted.web.http.HTTPChannel is less likely to leak file
    descriptors when timing out clients using HTTPS connections. In
    some cases it is still possible to leak a file descriptor when
    timing out HTTP clients: further patches will address this issue.
    (8992)

Other

  • 7744, 8909, 8935

Twisted Words 17.1.0 (2017-02-04)

No significant changes have been made for this release.

Twisted Core 16.6.0 (2016-11-17)

Features

  • The twist script can now be run by invoking python -m twisted.
    (8657)
  • twisted.protocols.sip has been ported to Python 3. (8669)
  • twisted.persisted.dirdbm has been ported to Python 3. (8888)

Bugfixes

  • twisted.internet.defer.Deferred now implements send, not send,
    which means that it is now a conforming generator. (8861)
  • The IOCP reactor no longer transmits the contents of uninitialized
    memory when writing large amounts of data. (8870)
  • Deferreds awaited/yielded from in a
    twisted.internet.defer.ensureDeferred wrapped coroutine will now
    properly raise exceptions. Additionally, it more closely models
    asyncio.ensure_future and will pass through Deferreds. (8878)
  • Deferreds that are paused or chained on other Deferreds will now
    return a result when yielded/awaited in a twisted.internet.defer
    .ensureDeferred-wrapped coroutine, instead of returning the
    Deferred it was chained to. (8890)

Improved Documentation

  • twisted.test.proto_helpers is now explicitly covered by the
    compatibility policy. (8857)

Other

  • 8281, 8823, 8862

Twisted Conch 16.6.0 (2016-11-17)

Features

  • twisted.conch.ssh.keys supports ECDSA keys (8798)
  • scripts/ckeygen can now generate ecdsa keys. (8828)
  • ckeygen has been ported to Python 3 (8855)

Deprecations and Removals

  • twisted.conch.ssh no longer uses gmpy, if available. gmpy is
    unmaintained, does not have binary wheels for any platforms, and an
    alternative for higher performance is available in the form of
    PyPy. (8079)

Twisted Mail 16.6.0 (2016-11-17)

No significant changes have been made for this release.

Twisted Names 16.6.0 (2016-11-17)

No significant changes have been made for this release.

Twisted News 16.6.0 (2016-11-17)

No significant changes have been made for this release.

Twisted Pair 16.6.0 (2016-11-17)

No significant changes have been made for this release.

Twisted Runner 16.6.0 (2016-11-17)

No significant changes have been made for this release.

Twisted Web 16.6.0 (2016-11-17)

Features

  • twisted.web.server.Site's HTTP/2 server support now emits vastly
    fewer WINDOW_UPDATE frames than previously. (8681)

Bugfixes

  • twisted.web.Agent now tolerates receiving unexpected status codes
    in the 100 range by discarding them, which is what RFC 7231
    recommends doing. (8885)
  • twisted.web._http.H2Stream's getHost and getPeer implementations
    now actually return the host and peer instead of None. (8893)

Twisted Words 16.6.0 (2016-11-17)

Features

  • twisted.words.protocols.irc has been ported to Python 3 (6320)

Twisted Core 16.5.0 (2016-10-28)

Features

  • Added twisted.internet.defer.Deferred.addTimeout method to enable
    timeouts of deferreds. (5786)
  • Perspective Broker (the twisted.spread package) has been ported to
    Python 3 (7598)
  • 'yield from' can now be used on Deferreds inside generators, when
    the generator is wrapped with
    twisted.internet.defer.ensureDeferred. (8087)
  • twisted.internet.asyncioreactor has been added, which is a Twisted
    reactor on top of Python 3.4+'s native asyncio reactor. It can be
    selected by passing "--reactor=asyncio" to Twisted tools (twistd,
    Trial, etc) on platforms that support it (Python 3.4+). (8367)
  • twisted.python.zippath now works on Windows with Python 3. (8747)
  • twisted.internet.cfreactor is ported to Python 3 and supported on
    2.7 and 3.5+. (8838)

Bugfixes

  • twisted.internet.test.test_iocp and twisted.internet.test.test_tcp
    have been fixed to work under Python 3 with the Windows IOCP
    reactor (8631)
  • Arguments to processes on Windows are now passed mbcs-encoded
    arguments. This prevents process-related tests from hanging on
    Windows with Python 3. (8735)
  • Client and server TLS connections made via the client TLS endpoint
    and the server SSL endpoint, as well as any other code that uses
    twisted.internet.ssl.CertificateOptions, no longer accept 3DES-
    based cipher suites by default, to defend against SWEET32. (8781)
  • twisted.logger.jsonFileLogObserver no longer emits non-JSON
    tracebacks into its file; additionally,
    twisted.logger.formatEventAsClassicLogText now includes traceback
    information for the log event it formats. (8858)
  • twisted.python.version now exports a version of Incremental that is
    16.10.1 or higher, making t.p.v.Version package name comparisons
    case-insensitive. (8863)
  • twisted.python.reflect.safe_str encodes unicode as ascii with
    backslashreplace error handling on Python 2. (8864)

Improved Documentation

  • The twisted.internet.interfaces.IProtocol.dataReceived() method
    takes one parameter of type bytes. This has been clarified in the
    doc string. (8763)

Deprecations and Removals

  • twisted.python.constants is deprecated in preference to constantly
    on PyPI, which is the same code rolled into its own package.
    (7351)
  • twisted.python.dist3 has been made private API. (8761)
  • When the source code is checked out, bin/trial is no longer in the
    tree. Developers working on the Twisted source code itself should
    either (1) run all tests under tox, or (2) run 'python setup.py
    develop' to install trial before running any tests. (8765)
  • twisted.protocols.gps, deprecated since Twisted 15.2, has been
    removed. (8787)

Other

  • 4926, 7868, 8209, 8214, 8271, 8308, 8324, 8348, 8367,
    8377, 8378, 8379, 8380, 8381, 8383, 8385, 8387, 8388,
    8389, 8391, 8392, 8393, 8394, 8397, 8406, 8410, 8412,
    8413, 8414, 8421, 8425, 8426, 8430, 8432, 8434, 8435,
    8437, 8438, 8439, 8444, 8451, 8452, 8453, 8454, 8456,
    8457, 8459, 8462, 8463, 8465, 8468, 8469, 8479, 8482,
    8483, 8486, 8490, 8493, 8494, 8496, 8497, 8498, 8499,
    8501, 8503, 8504, 8507, 8508, 8510, 8513, 8514, 8515,
    8516, 8517, 8520, 8521, 8522, 8523, 8524, 8527, 8528,
    8529, 8531, 8532, 8534, 8536, 8537, 8538, 8543, 8544,
    8548, 8552, 8553, 8554, 8555, 8557, 8560, 8563, 8565,
    8568, 8569, 8572, 8573, 8574, 8580, 8581, 8582, 8586,
    8589, 8590, 8592, 8593, 8598, 8603, 8604, 8606, 8609,
    8615, 8616, 8617, 8618, 8619, 8621, 8622, 8624, 8627,
    8628, 8630, 8632, 8634, 8640, 8644, 8645, 8646, 8647,
    8662, 8664, 8666, 8668, 8671, 8672, 8677, 8678, 8684,
    8691, 8702, 8705, 8706, 8716, 8719, 8724, 8725, 8727,
    8734, 8741, 8749, 8752, 8754, 8755, 8756, 8757, 8758,
    8767, 8773, 8776, 8779, 8780, 8785, 8788, 8789, 8790,
    8792, 8793, 8799, 8808, 8817, 8839, 8845, 8852

Twisted Conch 16.5.0 (2016-10-28)

Features

  • SSH key fingerprints can be generated using base64 encoded SHA256
    hashes. (8701)

Bugfixes

  • SSHUserAuthServer does not crash on keyboard interactive
    authentication when running on Python 3 (8771)
  • twisted.conch.insults.insults.ServerProtocol no longer corrupts a
    client's display when attempting to set the cursor position, and
    its ECMA-48 terminal manipulation works on Python 3. (8803)

Other

  • 8495, 8511, 8715, 8851

Twisted Mail 16.5.0 (2016-10-28)

Deprecations and Removals

  • twisted.mail.protocols.DomainSMTP and DomainESMTP, deprecated since
    2003, have been removed. (8772)

Other

  • 6289, 8525, 8786, 8830

Twisted Names 16.5.0 (2016-10-28)

No significant changes have been made for this release.

Other

  • 8625, 8663

Twisted News 16.5.0 (2016-10-28)

No significant changes have been made for this release.

Twisted Pair 16.5.0 (2016-10-28)

Features

  • twisted.pair has been ported to Python 3 (8744)

Twisted Runner 16.5.0 (2016-10-28)

No significant changes have been made for this release.

Twisted Web 16.5.0 (2016-10-28)

Bugfixes

  • twisted.web.client.HTTPConnectionPool and anything that uses it,
    like twisted.web.client.Agent, have had their logic for resuming
    transports changed so that transports are resumed after state
    machine transitions are complete, rather than before. This change
    allows the HTTP client infrastructure to work with alternative HTTP
    implementations such as HTTP/2 which may be able to deliver a
    complete response synchronously when producing is resumed. (8720)

Other

  • 8519, 8530, 8629, 8707, 8777, 8778, 8844

Twisted Words 16.5.0 (2016-10-28)

No significant changes have been made for this release.

Other

  • 8360, 8460

Twisted Core 16.4.1 (2016-09-07)

Features

  • Client and server TLS connections made via the client TLS endpoint
    and the server SSL endpoint, as well as any other code that uses
    twisted.internet.ssl.CertificateOptions, now support ChaCha20
    ciphers when available from the OpenSSL on the system. (8760)

Bugfixes

  • Client and server TLS connections made via the client TLS endpoint
    and the server SSL endpoint, as well as any other code that uses
    twisted.internet.ssl.CertificateOptions, no longer accept 3DES-
    based cipher suites by default, to defend against SWEET32. (8781)

Twisted Conch 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted Mail 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted Names 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted News 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted Pair 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted Runner 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted Web 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted Words 16.4.1 (2016-09-07)

No significant changes have been made for this release.

Twisted Core 16.4.0 (2016-08-25)

Features

  • Add twisted.application.twist, meant to eventually replace twistd
    with a simpler interface. Add twisted.application.runner API,
    currently private, which twist is built on. (5705)
  • The new interface IHandshakeListener that can be implemented by any
    Protocol provides a callback that is called when the TLS handshake
    has been completed, allowing Protocols to make decisions about the
    TLS configuration before application data is sent. (6024)
  • twisted.python.syslog has been ported to Python 3. (7957)
  • twisted.internet.defer.ensureDeferred has been added, similar to
    asyncio's ensure_future. Wrapping a coroutine (the result of a
    function defined using async def, available only on Python 3.5+)
    with it allows you to use the "await" keyword with Deferreds inside
    the coroutine, similar to "yield" when using inlineCallbacks.
    (8088)
  • twisted.internet.inotify have been ported to Python 3 (8211)
  • twisted.enterprise has been ported to Python 3. The third-party
    pysqlite2 package has not been ported to Python 3, so any database
    connector based on pysqlite2 cannot be used. Instead the sqlite3
    module included with Python 3 should be used. (8303)
  • Scripts such as cftp, ckeygen, conch, mailmail, pyhtmlizer,
    tkconch, twistd and trial have been updated to be setuptools
    console scripts. (8491)
  • twisted.pair.raw and twisted.pair.rawudp have been ported to Python
    3 (8545)
  • twisted.internet.baseprocess has been ported to Python 3. (8546)
  • twisted.python.dist has been ported to Python 3 (8556)
  • twisted.internet.interfaces.IOpenSSLContextFactory has been added,
    which defines the interface provided both by the old-style
    twisted.internet.ssl.ContextFactory class and the newer
    twisted.interface.ssl.CertificateOptions class. This is a precursor
    to formally deprecating the former class in favour of the latter.
    (8597)
  • twisted.python.zipstream has been ported to Python 3 (8607)
  • Zip file entries returned by ChunkingZipFile.readfile() are now
    context managers. (8641)
  • twisted.protocols.socks has been ported to Python 3 (8665)
  • twisted.spread.banana has been ported to Python 3 (8667)
  • Trial can now be invoked via "python -m twisted.trial". (8712)
  • twisted.protocols.postfix has been ported to Python 3 (8713)
  • twisted.protocols.wire and twisted.protocols.portforwarding have
    been ported to Python 3 (8717)
  • twisted.protocols.stateful has been ported to Python 3 (8718)
  • twisted.protocols.memcache is now compatible with Python 3. (8726)
  • twisted.protocols.dict has been ported to Python 3 (8732)

Bugfixes

  • pip install -e ".[dev]" now works on Python 3, but it will not
    install twistedchecker or pydoctor, which have not yet been ported.
    (7807)
  • twistd can now properly daemonize on Linux/Unix when run under
    Python3 and will not hang indefinitely. (8155)
  • tox can now be used to run Twisted's tests on Windows (8578)
  • twisted.python.filepath.setContent() and
    twisted.python.filepath.moveTo() now work on Windows with Python 3
    (8610)
  • twisted.internet.win32eventreactor works on Python 3 in Windows
    (8626)
  • The TLS payload buffer size was reduced in
    twisted.protocols.tls.TLSMemoryBIOProtocol. This fixes writing of
    very long strings using the TLSv1_1 method from the OpenSSL
    library. (8693)
  • twisted.logger._flatten.flattenEvent() now does not crash if passed
    a unicode string. (8699)
  • twisted.application.strports.service (and thus twist

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.

1 participant