Skip to content
This repository has been archived by the owner on Dec 28, 2023. It is now read-only.

Initial Update #34

Closed
wants to merge 19 commits into from
Closed

Initial Update #34

wants to merge 19 commits into from

Conversation

pyup-bot
Copy link
Contributor

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.

cffi 1.10.0 » 1.11.2 PyPI | Changelog | Docs
pyftpdlib 1.5.0 » 1.5.3 PyPI | Changelog | Repo
wheel 0.29.0 » 0.30.0 PyPI | Changelog | Repo
statsd 3.2.1 » 3.2.2 PyPI | Changelog | Repo
credstash 1.8.0 » 1.14.0 PyPI | Changelog | Repo
Flask 0.10.1 » 0.12.2 PyPI | Changelog | Repo
Flask-Script 2.0.5 » 2.0.6 PyPI | Changelog | Repo | Docs
celery 3.1.25 » 4.1.0 PyPI | Changelog | Homepage | Docs
monotonic 1.2 » 1.4 PyPI | Changelog | Repo
boto3 1.4.4 » 1.5.4 PyPI | Changelog | Repo
pytest 3.0.7 » 3.3.1 PyPI | Changelog | Repo | Homepage
pytest-mock 1.6 » 1.6.3 PyPI | Changelog | Repo
pytest-cov 2.3.1 » 2.5.1 PyPI | Changelog | Repo
coveralls 1.1 » 1.2.0 PyPI | Changelog | Repo
moto 0.4.25 » 1.1.25 PyPI | Changelog | Repo
flex 5.8.0 » 6.11.1 PyPI | Changelog | Repo
freezegun 0.3.7 » 0.3.9 PyPI | Changelog | Repo
requests-mock 1.0.0 » 1.4.0 PyPI | Docs

Changelogs

cffi 1.10.0 -> 1.11.2

1.11.2

=======

  • Fix Windows issue with managing the thread-state on CPython 3.0 to 3.5

1.11.1

=======

  • Fix tests, remove deprecated C API usage
  • Fix (hack) for 3.6.0/3.6.1/3.6.2 giving incompatible binary extensions
    (cpython issue 29943_)
  • Fix for 3.7.0a1+

.. _29943: https://bugs.python.org/issue29943

1.11

=====

  • Support the modern standard types char16_t and char32_t.
    These work like wchar_t: they represent one unicode character, or
    when used as charN_t * or charN_t[] they represent a unicode
    string. The difference with wchar_t is that they have a known,
    fixed size. They should work at all places that used to work with
    wchar_t (please report an issue if I missed something). Note
    that with set_source(), you need to make sure that these types are
    actually defined by the C source you provide (if used in cdef()).
  • Support the C99 types float _Complex and double _Complex.
    Note that libffi doesn't support them, which means that in the ABI
    mode you still cannot call C functions that take complex numbers
    directly as arguments or return type.
  • Fixed a rare race condition when creating multiple FFI instances
    from multiple threads. (Note that you aren't meant to create many
    FFI instances: in inline mode, you should write ffi = cffi.FFI() at module level just after import cffi; and in
    out-of-line mode you don't instantiate FFI explicitly at all.)
  • Windows: using callbacks can be messy because the CFFI internal error
    messages show up to stderr---but stderr goes nowhere in many
    applications. This makes it particularly hard to get started with the
    embedding mode. (Once you get started, you can at least use
    ffi.def_extern(onerror=...) and send the error logs where it
    makes sense for your application, or record them in log files, and so
    on.) So what is new in CFFI is that now, on Windows CFFI will try to
    open a non-modal MessageBox (in addition to sending raw messages to
    stderr). The MessageBox is only visible if the process stays alive:
    typically, console applications that crash close immediately, but that
    is also the situation where stderr should be visible anyway.
  • Progress on support for callbacks in NetBSD__.
  • Functions returning booleans would in some case still return 0 or 1
    instead of False or True. Fixed.
  • ffi.gc()__ now takes an optional third parameter, which gives an
    estimate of the size (in bytes) of the object. So far, this is only
    used by PyPy, to make the next GC occur more quickly (issue 320).
    In the future, this might have an effect on CPython too (provided
    the CPython issue 31105
    is addressed).
  • Add a note to the documentation: the ABI mode gives function objects
    that are slower to call than the API mode does. For some reason it
    is often thought to be faster. It is not!

.. __: https://bitbucket.org/cffi/cffi/issues/321/cffi-191-segmentation-fault-during-self
.. __: ref.htmlffi-gc
.. __: https://bitbucket.org/cffi/cffi/issues/320/improve-memory_pressure-management
.. __: http://bugs.python.org/issue31105

1.10.1

=======

pyftpdlib 1.5.0 -> 1.5.3

1.5.3

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

Enhancements

  • 201: implemented SITE MFMT command which changes file modification time.
    (patch by Tahir Ijaz)
  • 327: add username and password command line options
  • 433: documentation moved to readthedocs: http://pyftpdlib.readthedocs.io

Bug fixes

  • 403: fix duplicated output log. (path by PonyPC)
  • 414: Respond successfully to STOR only after closing file handle.

1.5.2

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

Enhancements

  • 378: SSL security was improved by disabling SSLv2, SSLv3 and SSL_COMPRESSION
    features. New TLS_FTPHandler's ssl_options class attribute was added.
  • 380: AbstractedFS.listdir() can now return also a generator (not only a
    list).

Bug fixes

  • 367: ThreadedFTPServer no longer hangs if close_all() is called.
  • 394: ETIMEDOUT is not treated as an alias for "connection lost".
  • 400: QUIT can raise KeyError in case the user hasn't logged in yet and sends
    QUIT command.

1.5.1

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

Bug fixes

  • 381: an extraneous file was accidentally added to the tarball, causing
    issues with Python 3.

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.

statsd 3.2.1 -> 3.2.2

3.2.2


  • Use a monotomic timer to avoid clock adjustments (96).
  • Test on Python 3.5 and 3.6.
  • Various doc updates.

credstash 1.8.0 -> 1.14.0

1.14.0

  • New: stephen-164 added -f to credstash get for wildcard gets
  • New: mrwacky42 added credstash keys
  • New: evanstachowiak added credstash putall
  • Updated: gene1wood, nkhoshini, and wyattwalter updated the docs
  • Bugfix: pm990320 fixed a bug by adding pagination for large credential stores
  • Bugfix: artburkart fixed a bug where writing csv files did not have proper line separators
  • Removed: Python 3.2 removed from build matrix

1.13.4

  • Set upper bound of cryptography to 2.1

1.13.3

  • Only fetch the session resource and client once
  • README updates for c and node imlpementations
  • python 3.2 removed frmo build matrix
  • fixed hmac checking
  • removed build constraint on cryptography <2.0

Flask 0.10.1 -> 0.12.2

0.12.2


Released on May 16 2017

  • Fix a bug in safe_join on Windows.

0.12.1


Bugfix release, released on March 31st 2017

  • Prevent flask run from showing a NoAppException when an ImportError occurs
    within the imported application module.
  • Fix encoding behavior of app.config.from_pyfile for Python 3. Fix
    2118.
  • Use the SERVER_NAME config if it is present as default values for
    app.run. 2109, 2152
  • Call ctx.auto_pop with the exception object instead of None, in the
    event that a BaseException such as KeyboardInterrupt is raised in a
    request handler.

0.12


Released on December 21st 2016, codename Punsch.

  • the cli command now responds to --version.
  • Mimetype guessing and ETag generation for file-like objects in send_file
    has been removed, as per issue 104. See pull request 1849.
  • Mimetype guessing in send_file now fails loudly and doesn't fall back to
    application/octet-stream. See pull request 1988.
  • Make flask.safe_join able to join multiple paths like os.path.join
    (pull request 1730).
  • Revert a behavior change that made the dev server crash instead of returning
    a Internal Server Error (pull request 2006).
  • Correctly invoke response handlers for both regular request dispatching as
    well as error handlers.
  • Disable logger propagation by default for the app logger.
  • Add support for range requests in send_file.
  • app.test_client includes preset default environment, which can now be
    directly set, instead of per client.get.

0.11.2


Bugfix release, unreleased

  • Fix crash when running under PyPy3, see pull request 1814.

0.11.1


Bugfix release, released on June 7th 2016.

  • Fixed a bug that prevented FLASK_APP=foobar/__init__.py from working. See
    pull request 1872.

0.11


Released on May 29th 2016, codename Absinthe.

  • Added support to serializing top-level arrays to :func:flask.jsonify. This
    introduces a security risk in ancient browsers. See
    :ref:json-security for details.
  • Added before_render_template signal.
  • Added **kwargs to :meth:flask.Test.test_client to support passing
    additional keyword arguments to the constructor of
    :attr:flask.Flask.test_client_class.
  • Added SESSION_REFRESH_EACH_REQUEST config key that controls the
    set-cookie behavior. If set to True a permanent session will be
    refreshed each request and get their lifetime extended, if set to
    False it will only be modified if the session actually modifies.
    Non permanent sessions are not affected by this and will always
    expire if the browser window closes.
  • Made Flask support custom JSON mimetypes for incoming data.
  • Added support for returning tuples in the form (response, headers)
    from a view function.
  • Added :meth:flask.Config.from_json.
  • Added :attr:flask.Flask.config_class.
  • Added :meth:flask.Config.get_namespace.
  • Templates are no longer automatically reloaded outside of debug mode. This
    can be configured with the new TEMPLATES_AUTO_RELOAD config key.
  • Added a workaround for a limitation in Python 3.3's namespace loader.
  • Added support for explicit root paths when using Python 3.3's namespace
    packages.
  • Added :command:flask and the flask.cli module to start the local
    debug server through the click CLI system. This is recommended over the old
    flask.run() method as it works faster and more reliable due to a
    different design and also replaces Flask-Script.
  • Error handlers that match specific classes are now checked first,
    thereby allowing catching exceptions that are subclasses of HTTP
    exceptions (in werkzeug.exceptions). This makes it possible
    for an extension author to create exceptions that will by default
    result in the HTTP error of their choosing, but may be caught with
    a custom error handler if desired.
  • Added :meth:flask.Config.from_mapping.
  • Flask will now log by default even if debug is disabled. The log format is
    now hardcoded but the default log handling can be disabled through the
    LOGGER_HANDLER_POLICY configuration key.
  • Removed deprecated module functionality.
  • Added the EXPLAIN_TEMPLATE_LOADING config flag which when enabled will
    instruct Flask to explain how it locates templates. This should help
    users debug when the wrong templates are loaded.
  • Enforce blueprint handling in the order they were registered for template
    loading.
  • Ported test suite to py.test.
  • Deprecated request.json in favour of request.get_json().
  • Add "pretty" and "compressed" separators definitions in jsonify() method.
    Reduces JSON response size when JSONIFY_PRETTYPRINT_REGULAR=False by removing
    unnecessary white space included by default after separators.
  • JSON responses are now terminated with a newline character, because it is a
    convention that UNIX text files end with a newline and some clients don't
    deal well when this newline is missing. See
    Add JSONIFY_END_WITH_NEWLINE config variable pallets/flask#1262 -- this came up originally as a
    part of https://github.com/kennethreitz/httpbin/issues/168
  • The automatically provided OPTIONS method is now correctly disabled if
    the user registered an overriding rule with the lowercase-version
    options (issue 1288).
  • flask.json.jsonify now supports the datetime.date type (pull request
    1326).
  • Don't leak exception info of already catched exceptions to context teardown
    handlers (pull request 1393).
  • Allow custom Jinja environment subclasses (pull request 1422).
  • flask.g now has pop() and setdefault methods.
  • Turn on autoescape for flask.templating.render_template_string by default
    (pull request 1515).
  • flask.ext is now deprecated (pull request 1484).
  • send_from_directory now raises BadRequest if the filename is invalid on
    the server OS (pull request 1763).
  • Added the JSONIFY_MIMETYPE configuration variable (pull request 1728).
  • Exceptions during teardown handling will no longer leave bad application
    contexts lingering around.

0.10.2


(bugfix release, release date to be announced)

  • Fixed broken test_appcontext_signals() test case.
  • Raise an :exc:AttributeError in :func:flask.helpers.find_package with a
    useful message explaining why it is raised when a PEP 302 import hook is used
    without an is_package() method.
  • Fixed an issue causing exceptions raised before entering a request or app
    context to be passed to teardown handlers.
  • Fixed an issue with query parameters getting removed from requests in
    the test client when absolute URLs were requested.
  • Made before_first_request into a decorator as intended.
  • Fixed an etags bug when sending a file streams with a name.
  • Fixed send_from_directory not expanding to the application root path
    correctly.
  • Changed logic of before first request handlers to flip the flag after
    invoking. This will allow some uses that are potentially dangerous but
    should probably be permitted.
  • Fixed Python 3 bug when a handler from app.url_build_error_handlers
    reraises the BuildError.

celery 3.1.25 -> 4.1.0

4.1.0

=====
:release-date: 2017-07-25 00:00 PM PST
:release-by: Omer Katz

  • Configuration: CELERY_SEND_EVENTS instead of CELERYD_SEND_EVENTS for 3.1.x compatibility (3997)

Contributed by abhinav nilaratna.

  • App: Restore behavior so Broadcast queues work. (3934)

Contributed by Patrick Cloke.

  • Sphinx: Make appstr use standard format (4134) (4139)

Contributed by Preston Moore.

  • App: Make id, name always accessible from logging.Formatter via extra (3994)

Contributed by Yoichi NAKAYAMA.

  • Worker: Add worker_shutting_down signal (3998)

Contributed by Daniel Huang.

  • PyPy: Support PyPy version 5.8.0 (4128)

Contributed by Omer Katz.

  • Results: Elasticsearch: Fix serializing keys (3924)

Contributed by :github_user:staticfox.

  • Canvas: Deserialize all tasks in a chain (4015)

Contributed by :github_user:fcoelho.

  • Systemd: Recover loglevel for ExecStart in systemd config (4023)

Contributed by Yoichi NAKAYAMA.

  • Sphinx: Use the Sphinx add_directive_to_domain API. (4037)

Contributed by Patrick Cloke.

  • App: Pass properties to before_task_publish signal (4035)

Contributed by Javier Domingo Cansino.

  • Results: Add SSL option for Redis backends (3831)

Contributed by Chris Kuehl.

  • Beat: celery.schedule.crontab: fix reduce (3826) (3827)

Contributed by Taylor C. Richberger.

  • State: Fix celery issues when using flower REST API

Contributed by Thierry RAMORASOAVINA.

  • Results: Elasticsearch: Fix serializing document id.

Contributed by Acey9.

  • Beat: Make shallow copy of schedules dictionary

Contributed by Brian May.

  • Beat: Populate heap when periodic tasks are changed

Contributed by Wojciech Żywno.

  • Task: Allow class methods to define tasks (3952)

Contributed by georgepsarakis.

  • Platforms: Always return boolean value when checking if signal is supported (3962).

Contributed by Jian Yu.

  • Canvas: Avoid duplicating chains in chords (3779)

Contributed by Ryan Hiebert.

  • Canvas: Lookup task only if list has items (3847)

Contributed by Marc Gibbons.

  • Results: Allow unicode message for exception raised in task (3903)

Contributed by George Psarakis.

  • Python3: Support for Python 3.6 (3904, 3903, 3736)

Contributed by Jon Dufresne, George Psarakis, Asif Saifuddin Auvi, Omer Katz.

  • App: Fix retried tasks with expirations (3790)

Contributed by Brendan MacDonell.

    • Fixes items format route in docs (3875)

Contributed by Slam.

  • Utils: Fix maybe_make_aware (3850)

Contributed by Taylor C. Richberger.

  • Task: Fix task ETA issues when timezone is defined in configuration (3867)

Contributed by George Psarakis.

  • Concurrency: Consumer does not shutdown properly when embedded in gevent application (3746)

Contributed by Arcadiy Ivanov.

  • Canvas: Fix 3725: Task replaced with group does not complete (3731)

Contributed by Morgan Doocy.

  • Task: Correct order in chains with replaced tasks (3730)

Contributed by Morgan Doocy.

  • Result: Enable synchronous execution of sub-tasks (3696)

Contributed by shalev67.

  • Task: Fix request context for blocking task apply (added hostname) (3716)

Contributed by Marat Sharafutdinov.

  • Utils: Fix task argument handling (3678) (3693)

Contributed by Roman Sichny.

  • Beat: Provide a transparent method to update the Scheduler heap (3721)

Contributed by Alejandro Pernin.

  • Beat: Specify default value for pidfile option of celery beat. (3722)

Contributed by Arnaud Rocher.

  • Results: Elasticsearch: Stop generating a new field every time when a new result is being put (3708)

Contributed by Mike Chen.

  • Requirements
  • Now depends on :ref:Kombu 4.1.0 &lt;kombu:version-4.1.0&gt;.
  • Results: Elasticsearch now reuses fields when new results are added.

Contributed by Mike Chen.

  • Results: Fixed MongoDB integration when using binary encodings
    (Issue 3575).

Contributed by Andrew de Quincey.

  • Worker: Making missing *args and **kwargs in Task protocol 1
    return empty value in protocol 2 (Issue 3687).

Contributed by Roman Sichny.

  • App: Fixed :exc:TypeError in AMQP when using deprecated signal
    (Issue 3707).

Contributed by :github_user:michael-k.

  • Beat: Added a transparent method to update the scheduler heap.

Contributed by Alejandro Pernin.

  • Task: Fixed handling of tasks with keyword arguments on Python 3
    (Issue 3657).

Contributed by Roman Sichny.

  • Task: Fixed request context for blocking task apply by adding missing
    hostname attribute.

Contributed by Marat Sharafutdinov.

  • Task: Added option to run subtasks synchronously with
    disable_sync_subtasks argument.

Contributed by :github_user:shalev67.

  • App: Fixed chaining of replaced tasks (Issue 3726).

Contributed by Morgan Doocy.

  • Canvas: Fixed bug where replaced tasks with groups were not completing
    (Issue 3725).

Contributed by Morgan Doocy.

  • Worker: Fixed problem where consumer does not shutdown properly when
    embedded in a gevent application (Issue 3745).

Contributed by Arcadiy Ivanov.

  • Results: Added support for using AWS DynamoDB as a result backend (3736).

Contributed by George Psarakis.

  • Testing: Added caching on pip installs.

Contributed by :github_user:orf.

  • Worker: Prevent consuming queue before ready on startup (Issue 3620).

Contributed by Alan Hamlett.

  • App: Fixed task ETA issues when timezone is defined in configuration
    (Issue 3753).

Contributed by George Psarakis.

  • Utils: maybe_make_aware should not modify datetime when it is
    already timezone-aware (Issue 3849).

Contributed by Taylor C. Richberger.

  • App: Fixed retrying tasks with expirations (Issue 3734).

Contributed by Brendan MacDonell.

  • Results: Allow unicode message for exceptions raised in task
    (Issue 3858).

Contributed by :github_user:staticfox.

  • Canvas: Fixed :exc:IndexError raised when chord has an empty header.

Contributed by Marc Gibbons.

  • Canvas: Avoid duplicating chains in chords (Issue 3771).

Contributed by Ryan Hiebert and George Psarakis.

  • Utils: Allow class methods to define tasks (Issue 3863).

Contributed by George Psarakis.

  • Beat: Populate heap when periodic tasks are changed.

Contributed by :github_user:wzywno and Brian May.

  • Results: Added support for Elasticsearch backend options settings.

Contributed by :github_user:Acey9.

  • Events: Ensure Task.as_dict() works when not all information about
    task is available.

Contributed by :github_user:tramora.

  • Schedules: Fixed pickled crontab schedules to restore properly (Issue 3826).

Contributed by Taylor C. Richberger.

  • Results: Added SSL option for redis backends (Issue 3830).

Contributed by Chris Kuehl.

  • Documentation and examples improvements by:
  • Bruno Alla
  • Jamie Alessio
  • Vivek Anand
  • Peter Bittner
  • Kalle Bronsen
  • Jon Dufresne
  • James Michael DuPont
  • Sergey Fursov
  • Samuel Dion-Girardeau
  • Daniel Hahler
  • Mike Helmick
  • Marc Hörsken
  • Christopher Hoskin
  • Daniel Huang
  • Primož Kerin
  • Michal Kuffa
  • Simon Legner
  • Anthony Lukach
  • Ed Morley
  • Jay McGrath
  • Rico Moorman
  • Viraj Navkal
  • Ross Patterson
  • Dmytro Petruk
  • Luke Plant
  • Eric Poelke
  • Salvatore Rinchiera
  • Arnaud Rocher
  • Kirill Romanov
  • Simon Schmidt
  • Tamer Sherif
  • YuLun Shih
  • Ask Solem
  • Tom 'Biwaa' Riat
  • Arthur Vigil
  • Joey Wilhelm
  • Jian Yu
  • YuLun Shih
  • Arthur Vigil
  • Joey Wilhelm
  • :github_user:baixuexue123
  • :github_user:bronsen
  • :github_user:michael-k
  • :github_user:orf
  • :github_user:3lnc

4.0.2

=====
:release-date: 2016-12-15 03:31 P.M PST
:release-by: Ask Solem

  • Now depends on :mod:amqp 2.1.4

This new version takes advantage of TCP Keepalive settings on Linux,
making it better at detecting closed connections, also in failover
conditions.

  • Redis: Priority was reversed so, e.g. priority 0 became priority 9.

.. _version-4.0.1:

4.0.1

=====
:release-date: 2016-12-07 06:00 P.M PST
:release-by: Ask Solem

  • Now depends on :mod:amqp 2.1.3

This new version takes advantage of the new TCP_USER_TIMEOUT socket option
on Linux.

  • Producer: Fixed performance degradation when default exchange specified
    (Issue 651).
  • QPid: Switch to using getattr in qpid.Transport.del (Issue 658)

Contributed by Patrick Creech.

  • QPid: Now uses monotonic time for timeouts.
  • MongoDB: Fixed compatibility with Python 3 (Issue 661).
  • Consumer: __exit__ now skips cancelling consumer if connection-related
    error raised (Issue 670).
  • MongoDB: Removes use of natural sort (Issue 638).

Contributed by Anton Chaporgin.

  • Fixed wrong keyword argument channel error (Issue 652).

Contributed by Toomore Chiang.

  • Safe argument to urllib.quote must be bytes on Python 2.x (Issue 645).
  • Documentation improvments by:
  • Carlos Edo
  • Cemre Mengu

.. _version-4.0:

4.0

===
:release-date: 2016-10-28 16:45 P.M UTC
:release-by: Ask Solem

  • Now depends on :mod:amqp 2.0.

The new py-amqp version have been refactored for better performance,
using modern Python socket conventions, and API consistency.

  • No longer depends on :mod:anyjson.

Kombu will now only choose between :pypi:simplejson and the built-in
:mod:json.

Using the latest version of simplejson is recommended:

.. code-block:: console

   $ pip install -U simplejson
  • Removed transports that are no longer supported in this version:
  • Django ORM transport
  • SQLAlchemy ORM transport
  • Beanstalk transport
  • ZeroMQ transport
  • amqplib transport (use pyamqp).
  • API Changes
  • Signature of :class:kombu.Message now takes body as first argment.
   It used to be ``Message(channel, body=body, **kw)``, but now it&#39;s
   ``Message(body, channel=channel, **kw)``.
   This is unlikey to affect you, as the Kombu API does not have
   users instantiate messages manually.
  • New SQS transport

Donated by NextDoor, with additional contributions from mdk.

.. note::

   ``kombu[sqs]`` now depends on :pypi:`pycurl`.
  • New Consul transport.

Contributed by Wido den Hollander.

  • New etcd transport.

Contributed by Stephen Milner.

  • New Qpid transport.

It was introduced as an experimental transport in Kombu 3.0, but is now
mature enough to be fully supported.

Created and maintained by Brian Bouterse.

  • Redis: Priority 0 is now lowest, 9 is highest.
    (backward incompatible)

This to match how priorities in AMQP works.

Fix contributed by Alex Koshelev.

  • Redis: Support for Sentinel

You can point the connection to a list of sentinel URLs like:

.. code-block:: text

   sentinel://0.0.0.0:26379;sentinel://0.0.0.0:26380/...

where each sentinel is separated by a ;. Multiple sentinels are handled
by :class:kombu.Connection constructor, and placed in the alternative
list of servers to connect to in case of connection failure.

Contributed by Sergey Azovskov, and Lorenzo Mancini

  • RabbitMQ Queue Extensions

New arguments have been added to :class:kombu.Queue that lets
you directly and conveniently configure the RabbitMQ queue extensions.

  • Queue(expires=20.0)
   Set queue expiry time in float seconds.
   See :attr:`kombu.Queue.expires`.
  • Queue(message_ttl=30.0)
   Set queue message time-to-live float seconds.
   See :attr:`kombu.Queue.message_ttl`.
  • Queue(max_length=1000)
   Set queue max length (number of messages) as int.
   See :attr:`kombu.Queue.max_length`.
  • Queue(max_length_bytes=1000)
   Set queue max length (message size total in bytes) as int.
   See :attr:`kombu.Queue.max_length_bytes`.
  • Queue(max_priority=10)
   Declare queue to be a priority queue that routes messages
   based on the ``priority`` field of the message.
   See :attr:`kombu.Queue.max_priority`.
  • RabbitMQ: Message.ack now supports the multiple argument.

If multiple is set to True, then all messages received before
the message being acked will also be acknowledged.

  • amqps:// can now be specified to require SSL (Issue 610).
  • Consumer.cancel_by_queue is now constant time.
  • Connection.ensure* now raises :exc:kombu.exceptions.OperationalError.

Things that can be retried are now reraised as
:exc:kombu.exceptions.OperationalError.

  • Redis: Fixed SSL support.

Contributed by Robert Kolba.

  • New Queue.consumer_arguments can be used for the ability to
    set consumer priority via x-priority.

See https://www.rabbitmq.com/consumer-priority.html

Example:

.. code-block:: python

   Queue(
       &#39;qname&#39;,
       exchange=Exchange(&#39;exchange&#39;),
       routing_key=&#39;qname&#39;,
       consumer_arguments={&#39;x-priority&#39;: 3},
   )
  • Queue/Exchange: no_declare option added (also enabled for
    internal amq. exchanges) (Issue 565).
  • JSON serializer now calls obj.__json__ for unsupported types.

This means you can now define a __json__ method for custom
types that can be reduced down to a built-in json type.

Example:

.. code-block:: python

   class Person:
       first_name = None
       last_name = None
       address = None
       def __json__(self):
           return {
               &#39;first_name&#39;: self.first_name,
               &#39;last_name&#39;: self.last_name,
               &#39;address&#39;: self.address,
           }
  • JSON serializer now handles datetimes, Django promise, UUID and Decimal.
  • Beanstalk: Priority 0 is now lowest, 9 is highest.
    (backward incompatible)

This to match how priorities in AMQP works.

Fix contributed by Alex Koshelev.

  • Redis: now supports SSL using the ssl argument to
    :class:~kombu.Connection.
  • Redis: Fanout exchanges are no longer visible between vhosts,
    and fanout messages can be filtered by patterns.
    (backward incompatible)

It was possible to enable this mode previously using the
fanout_prefix, and fanout_patterns
transport options, but now these are enabled by default.

If you want to mix and match producers/consumers running different
versions you need to configure your kombu 3.x clients to also enable
these options:

.. code-block:: pycon

   &gt;&gt;&gt; Connection(transport_options={
       &#39;fanout_prefix&#39;: True,
       &#39;fanout_patterns&#39;: True,
   })
  • Pidbox: Mailbox new arguments: TTL and expiry.

Mailbox now supports new arguments for controlling
message TTLs and queue expiry, both for the mailbox
queue and for reply queues.

  • queue_expires (float/int seconds).
  • queue_ttl (float/int seconds).
  • reply_queue_expires (float/int seconds).
  • reply_queue_ttl (float/int seconds).

All take seconds in int/float.

Contributed by Alan Justino.

  • Exchange.delivery_mode now defaults to :const:None, and the default
    is instead set by Producer.publish.
  • :class:~kombu.Consumer now supports a new prefetch_count argument,
    which if provided will force the consumer to set an initial prefetch count
    just before starting.
  • Virtual transports now stores priority as a property, not in
    delivery_info, to be compatible with AMQP.
  • reply_to argument to Producer.publish can now be
    :class:~kombu.Queue instance.
  • Connection: There's now a new method
    Connection.supports_exchange_type(type) that can be used to check if the
    current transport supports a specific exchange type.
  • SQS: Consumers can now read json messages not sent by Kombu.

Contributed by Juan Carlos Ferrer.

  • SQS: Will now log the access key used when authentication fails.

Contributed by Hank John.

  • Added new :class:kombu.mixins.ConsumerProducerMixin for consumers that
    will also publish messages on a separate connection.
  • Messages: Now have a more descriptive repr.

Contributed by Joshua Harlow.

  • Async: HTTP client based on curl.
  • Async: Now uses poll instead of select where available.
  • MongoDB: Now supports priorities

Contributed by Alex Koshelev.

  • Virtual transports now supports multiple queue bindings.

Contributed by Federico Ficarelli.

  • Virtual transports now supports the anon exchange.

If when publishing a message, the exchange argument is set to '' (empty
string), the routing_key will be regarded as the destination queue.

This will bypass the routing table compeltely, and just deliver the
message to the queue name specified in the routing key.

  • Zookeeper: Transport now uses the built-in suport in kazoo to handle
    failover when using a list of server names.

Contributed by Joshua Harlow.

  • ConsumerMixin.run now passes keyword arguments to .consume.

Deprecations and removals

  • The deprecated method Consumer.add_queue_from_dict has been removed.

Use instead:

.. code-block:: python

   consumer.add_queue(Queue.from_dict(queue_name, **options))
  • The deprecated function kombu.serialization.encode has been removed.

Use :func:kombu.serialization.dumps instead.

  • The deprecated function kombu.serialization.decode has been removed.

Use :func:kombu.serialization.loads instead.

  • Removed module kombu.syn

detect_environment has been moved to kombu.utils.compat

.. _version-3.0.37:

3.5.0.3


  • Adds Process._authkey alias to .authkey for 2.7 compat.
  • Remove superfluous else clause from max_memory_per_child_check.
  • Document and test all supported Python versions.
  • Extend 'Process' to be compatible with < Py3.5.
  • Use a properly initialized logger in pool.py error logging.
  • _trywaitkill can now kill a whole process group if the worker process declares itself as a group leader.
  • Fix cpython issue 14881 (See http://bugs.python.org/issue14881).
  • Fix for a crash on windows.
  • Fix messaging in case of worker exceeds max memory.

3.5.0.2


  • max_memory_per_child was measured in kilobytes on Linux, but bytes on
    *BSD/MacOS, it's now always kilobytes.
  • Windows: Adds support for max_memory_per_child, but requires the
    psutil package to be installed.
  • Fixed bug in ForkingPickler.loadbuf, where it tried to pass
    a BytesIO instance directly to pickle.loads on Python 2.7.

3.5.0.1


  • Connection: Properly handle EINTR (Issue 191).
  • Fixed bug with missing CreateProcess for Windows on Python 2.7.
  • Adds Process._counter for compatibility with Python <3.5.

3.5.0.0


  • No longer supports Python 2.6

You need Python 2.7 or later to use this version of billiard.

  • Merged changes from CPython 3.5

3.3.0.20


  • Pool: Timeouts will attempt to send SIGKILL, but this signal
    does not exist on Windows. Replaced with SIGTERM.

3.3.0.19


  • Pool: Exceptions in user timeout callbacks are now logged instead
    of crashing the pool.

Contributed by Pierre Fersing.

  • Pool: Exit codes in errors were improperly being represented as signals.
  • Pool: .map. and .imap now working again.
  • Now builds on FreeBSD 10.

Contributed by Michael Fladischer.

3.3.0.18


  • Now compiles on GNU/kFreeBSD

Contributed by Michael Fladischer.

  • Pool: AF_PIPE address fixed so that it works on recent Windows versions
    in combination with Python 2.7.7.

Fix contributed by Joshua Tacoma.

  • Pool: Fix for Supervisor object has no attribute _children error.

Fix contributed by Andres Riancho.

  • Pool: Fixed bug with human_status(None).
  • Pool: shrink did not work properly if asked to remove more than 1 process.

3.3.0.17


  • Fixes SemLock on Python 3.4 (Issue 107) when using
    forking_enable(False).
  • Pool: Include more useful exitcode information when processes exit.

3.3.0.16


  • Previous release was missing the billiard.py3 package from MANIFEST
    so the installation would not work on Python 3.

3.3.0.15


  • Pool: Fixed "cannot join process not started" error.
  • Now uses billiard.py2 and billiard.py3 specific packages that are installed
    depending on the python version used.

This way the installation will not import version specific modules (and
possibly crash).

3.3.0.14


  • Fixed problem with our backwards compatible bytes wrapper
    (Issue 103).
  • No longer expects frozen applications to have a valid __file__
    attribute.

Fix contributed by George Sibble.

3.3.0.13


  • Fixes compatability with Python < 2.7.6
  • No longer attempts to handle SIGBUS

Contributed by Vishal Vatsa.

  • Non-thread based pool now only handles signals:

SIGHUP, SIGQUIT, SIGTERM, SIGUSR1,
SIGUSR2.

  • setup.py: Only show compilation warning for build related commands.

3.3.0.12


  • Fixed installation for Python 3.

Contributed by Rickert Mulder.

  • Pool: Fixed bug with maxtasksperchild.

Fix contributed by Ionel Cristian Maries.

  • Pool: Fixed bug in maintain_pool.

3.3.0.11


  • Fixed Unicode error when installing the distribution (Issue 89).
  • Daemonic processes are now allowed to have children.

But note that it will not be possible to automatically
terminate them when the process exits.

See discussion at celery/celery#1709

  • Pool: Would not always be able to detect that a process exited.

3.3.0.10


  • Windows: Fixed problem with missing WAITABANDONED_0

Fix contributed by Matthias Wagner

  • Windows: PipeConnection can now be inherited.

Fix contributed by Matthias Wagner

3.3.0.9


  • Temporary workaround for Celery maxtasksperchild issue.

Fix contributed by Ionel Cristian Maries.

3.3.0.8


  • Now also sets multiprocessing.current_process for compatibility
    with loggings processName field.

3.3.0.7


  • Fixed compatibility with PyPy 2.1 + 2.2.
  • Fixed problem in pypy detection.

Fix contributed by Tin Tvrtkovic.

  • Now uses ctypes.find_library instead of hardcoded path to find
    the macOS CoreServices framework.

Fix contributed by Moritz Kassner.

3.3.0.6


  • Now works without C extension again.
  • New _billiard.read(fd, buffer, [len, ]) function
    implements os.read with buffer support (new buffer API)
  • New pure-python implementation of Connection.send_offset.

3.3.0.5


  • All platforms except for Windows/PyPy/Jython now requires the C extension.

3.3.0.4


  • Fixed problem with Python3 and setblocking.

3.3.0.3


  • Now works on Windows again.

3.3.0.2


  • ApplyResult.terminate() may be set to signify that the job
    must not be executed. It can be used in combination with
    Pool.terminate_job.
  • Pipe/_SimpleQueue: Now supports rnonblock/wnonblock arguments
    to set the read or write end of the pipe to be nonblocking.
  • Pool: Log message included exception info but exception happened
    in another process so the resulting traceback was wrong.
  • Pool: Worker process can now prepare results before they are sent
    back to the main process (using Worker.prepare_result).

3.3.0.1


  • Pool: New correlation_id argument to apply_async can be
    used to set a related id for the ApplyResult object returned:

>>> r = pool.apply_async(target, args, kwargs, correlation_id='foo')
>>> r.correlation_id
'foo'

  • Pool: New callback on_process_exit is called when a pool
    process exits, with signature (pid, exitcode).

Contributed by Daniel M. Taub.

  • Pool: Improved the too many restarts detection.

3.3.0.0


  • Dual code base now runs on Python 2.6+ and Python 3.
  • No longer compatible with Python 2.5
  • Includes many changes from multiprocessing in 3.4.
  • Now uses time.monotonic when available, also including
    fallback implementations for Linux and macOS.
  • No longer cleans up after receiving SIGILL, SIGSEGV or SIGFPE

Contributed by Kevin Blackham

  • Finalize and register_after_fork is now aliases to multiprocessing.

It's better to import these from multiprocessing directly now
so that there aren't multiple registries.

  • New billiard.queues._SimpleQueue that does not use semaphores.
  • Pool: Can now be extended to support using multiple IPC queues.
  • Pool: Can now use async I/O to write to pool IPC queues.
  • Pool: New Worker.on_loop_stop handler can be used to add actions
    at pool worker process shutdown.

Note that, like all finalization handlers, there is no guarantee that
this will be executed.

Contributed by dmtaub.

monotonic 1.2 -> 1.4

1.4

1.3

Add support for IBM AIX.

boto3 1.4.4 -> 1.5.4

1.5.4

=====

  • api-change:iot: [botocore] Update iot client to latest version
  • api-change:config: [botocore] Update config client to latest version

1.5.3

=====

  • api-change:route53: [botocore] Update route53 client to latest version
  • api-change:apigateway: [botocore] Update apigateway client to latest version
  • api-change:mediastore-data: [botocore] Update mediastore-data client to latest version

1.5.2

=====

  • bugfix:presigned-url: [botocore] Fixes a bug where content-type would be set on presigned requests for query services.
  • api-change:cloudwatch: [botocore] Update cloudwatch client to latest version

1.5.1

=====

  • api-change:appstream: [botocore] Update appstream client to latest version

1.5.0

=====

  • bugfix:Filters: Fixes a bug where parameters passed to resource collections could be mutated after the collections were created.
  • api-change:ses: [botocore] Update ses client to latest version
  • enhancement:credentials: [botocore] Moved the JSONFileCache from the CLI into botocore so that it can be used without importing from the cli.
  • feature:botocore dependency: Update dependency strategy to always take a floor on the most recent version of botocore. This means whenever there is a release of botocore, boto3 will release as well to account for the new version of botocore.
  • api-change:apigateway: [botocore] Update apigateway client to latest version

1.4.8

=====

  • enhancement:botocore: Raised minor version dependency for botocore

1.4.7

=====

  • enhancement:botocore: Raised minor version dependency for botocore

1.4.6

=====

  • enhancement:Logging: Switch log levels from INFO to DEBUG (1208 &lt;https://github.com/boto/boto3/issues/1208&gt;__)

1.4.5

=====

  • enhancement:s3: Add a LifecycleConfiguration resource to resolve issues with the existing Lifecycle resource.

pytest 3.0.7 -> 3.3.1

3.3.1

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

Bug Fixes

  • Fix issue about -p no:&lt;plugin&gt; having no effect. (2920 &lt;https://github.com/pytest-dev/pytest/issues/2920&gt;_)
  • Fix regression with warnings that contained non-strings in their arguments in
    Python 2. (2956 &lt;https://github.com/pytest-dev/pytest/issues/2956&gt;_)
  • Always escape null bytes when setting PYTEST_CURRENT_TEST. (2957 &lt;https://github.com/pytest-dev/pytest/issues/2957&gt;_)
  • Fix ZeroDivisionError when using the testmon plugin when no tests
    were actually collected. (2971 &lt;https://github.com/pytest-dev/pytest/issues/2971&gt;_)
  • Bring back TerminalReporter.writer as an alias to
    TerminalReporter._tw. This alias was removed by accident in the 3.3.0
    release. (2984 &lt;https://github.com/pytest-dev/pytest/issues/2984&gt;_)
  • The pytest-capturelog plugin is now also blacklisted, avoiding errors when
    running pytest with it still installed. (3004 &lt;https://github.com/pytest-dev/pytest/issues/3004&gt;_)

Improved Documentation

  • Fix broken link to plugin pytest-localserver. (2963 &lt;https://github.com/pytest-dev/pytest/issues/2963&gt;_)

Trivial/Internal Changes

  • Update github "bugs" link in CONTRIBUTING.rst (2949 &lt;https://github.com/pytest-dev/pytest/issues/2949&gt;_)

3.3.0

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

Deprecations and Removals

  • Pytest no longer supports Python 2.6 and 3.3. Those Python versions
    are EOL for some time now and incur maintenance and compatibility costs on
    the pytest core team, and following up with the rest of the community we
    decided that they will no longer be supported starting on this version. Users
    which still require those versions should pin pytest to &lt;3.3. (2812 &lt;https://github.com/pytest-dev/pytest/issues/2812&gt;_)
  • Remove internal _preloadplugins() function. This removal is part of the
    pytest_namespace() hook deprecation. (2636 &lt;https://github.com/pytest-dev/pytest/issues/2636&gt;_)
  • Internally change CallSpec2 to have a list of marks instead of a broken
    mapping of keywords. This removes the keywords attribute of the internal
    CallSpec2 class. (2672 &lt;https://github.com/pytest-dev/pytest/issues/2672&gt;_)
  • Remove ParameterSet.deprecated_arg_dict - its not a public api and the lack
    of the underscore was a naming error. (2675 &lt;https://github.com/pytest-dev/pytest/issues/2675&gt;_)
  • Remove the internal multi-typed attribute Node._evalskip and replace it
    with the boolean Node._skipped_by_mark. (2767 &lt;https://github.com/pytest-dev/pytest/issues/2767&gt;_)
  • The params list passed to pytest.fixture is now for
    all effects considered immutable and frozen at the moment of the pytest.fixture
    call. Previously the list could be changed before the first invocation of the fixture
    allowing for a form of dynamic parametrization (for example, updated from command-line options),
    but this was an unwanted implementation detail which complicated the internals and prevented
    some internal cleanup. See issue 2959 &lt;https://github.com/pytest-dev/pytest/issues/2959&gt;_
    for details and a recommended workaround.

Features

  • pytest_fixture_post_finalizer hook can now receive a request
    argument. (2124 &lt;https://github.com/pytest-dev/pytest/issues/2124&gt;_)
  • Replace the old introspection code in compat.py that determines the available
    arguments of fixtures with inspect.signature on Python 3 and
    funcsigs.signature on Python 2. This should respect __signature__
    declarations on functions. (2267 &lt;https://github.com/pytest-dev/pytest/issues/2267&gt;_)
  • Report tests with global pytestmark variable only once. (2549 &lt;https://github.com/pytest-dev/pytest/issues/2549&gt;_)
  • Now pytest displays the total progress percentage while running tests. The
    previous output style can be set by configuring the console_output_style
    setting to classic. (2657 &lt;https://github.com/pytest-dev/pytest/issues/2657&gt;_)
  • Match warns signature to raises by adding match keyword. (2708 &lt;https://github.com/pytest-dev/pytest/issues/2708&gt;_)
  • Pytest now captures and displays output from the standard logging module.
    The user can control the logging level to be captured by specifying options
    in pytest.ini, the command line and also during individual tests using
    markers. Also, a caplog fixture is available that enables users to test
    the captured log during specific tests (similar to capsys for example).
    For more information, please see the logging docs &lt;https://docs.pytest.org/en/latest/logging.html&gt;. This feature was
    introduced by merging the popular pytest-catchlog &lt;https://pypi.org/project/pytest-catchlog/&gt;
    plugin, thanks to Thomas Hisch &lt;https://github.com/thisch&gt;. Be advised that during the merging the
    backward compatibility interface with the defunct pytest-capturelog has
    been dropped. (2794 &lt;https://github.com/pytest-dev/pytest/issues/2794&gt;
    )
  • Add allow_module_level kwarg to pytest.skip(), enabling to skip the
    whole module. (2808 &lt;https://github.com/pytest-dev/pytest/issues/2808&gt;_)
  • Allow setting file_or_dir, -c, and -o in PYTEST_ADDOPTS. (2824 &lt;https://github.com/pytest-dev/pytest/issues/2824&gt;_)
  • Return stdout/stderr capture results as a namedtuple, so out and
    err can be accessed by attribute. (2879 &lt;https://github.com/pytest-dev/pytest/issues/2879&gt;_)
  • Add capfdbinary, a version of capfd which returns bytes from
    readouterr(). (2923 &lt;https://github.com/pytest-dev/pytest/issues/2923&gt;_)
  • Add capsysbinary a version of capsys which returns bytes from
    readouterr(). (2934 &lt;https://github.com/pytest-dev/pytest/issues/2934&gt;_)
  • Implement feature to skip setup.py files when run with
    --doctest-modules. (502 &lt;https://github.com/pytest-dev/pytest/issues/502&gt;_)

Bug Fixes

  • Resume output capturing after capsys/capfd.disabled() context manager.
    (1993 &lt;https://github.com/pytest-dev/pytest/issues/1993&gt;_)
  • pytest_fixture_setup and pytest_fixture_post_finalizer hooks are now
    called for all conftest.py files. (2124 &lt;https://github.com/pytest-dev/pytest/issues/2124&gt;_)
  • If an exception happens while loading a plugin, pytest no longer hides the
    original traceback. In python2 it will show the original traceback with a new
    message that explains in which plugin. In python3 it will show 2 canonized
    exceptions, the original exception while loading the plugin in addition to an
    exception that PyTest throws about loading a plugin. (2491 &lt;https://github.com/pytest-dev/pytest/issues/2491&gt;_)
  • capsys and capfd can now be used by other fixtures. (2709 &lt;https://github.com/pytest-dev/pytest/issues/2709&gt;_)
  • Internal pytester plugin properly encodes bytes arguments to
    utf-8. (2738 &lt;https://github.com/pytest-dev/pytest/issues/2738&gt;_)
  • testdir now uses use the same method used by tmpdir to create its
    temporary directory. This changes the final structure of the testdir
    directory slightly, but should not affect usage in normal scenarios and
    avoids a number of potential problems. (2751 &lt;https://github.com/pytest-dev/pytest/issues/2751&gt;_)
  • Pytest no longer complains about warnings with unicode messages being
    non-ascii compatible even for ascii-compatible messages. As a result of this,
    warnings with unicode messages are converted first to an ascii representation
    for safety. (2809 &lt;https://github.com/pytest-dev/pytest/issues/2809&gt;_)
  • Change return value of pytest command when --maxfail is reached from
    2 (interrupted) to 1 (failed). (2845 &lt;https://github.com/pytest-dev/pytest/issues/2845&gt;_)
  • Fix issue in assertion rewriting which could lead it to rewrite modules which
    should not be rewritten. (2939 &lt;https://github.com/pytest-dev/pytest/issues/2939&gt;_)
  • Handle marks without description in pytest.ini. (2942 &lt;https://github.com/pytest-dev/pytest/issues/2942&gt;_)

Trivial/Internal Changes

  • pytest now depends on attrs &lt;https://pypi.org/project/attrs/&gt;_ for internal
    structures to ease code maintainability. (2641 &lt;https://github.com/pytest-dev/pytest/issues/2641&gt;_)
  • Refactored internal Python 2/3 compatibility code to use six. (2642 &lt;https://github.com/pytest-dev/pytest/issues/2642&gt;_)
  • Stop vendoring pluggy - we're missing out on its latest changes for not
    much benefit (2719 &lt;https://github.com/pytest-dev/pytest/issues/2719&gt;_)
  • Internal refactor: simplify ascii string escaping by using the
    backslashreplace error handler in newer Python 3 versions. (2734 &lt;https://github.com/pytest-dev/pytest/issues/2734&gt;_)
  • Remove unnecessary mark evaluator in unittest plugin (2767 &lt;https://github.com/pytest-dev/pytest/issues/2767&gt;_)
  • Calls to Metafunc.addcall now emit a deprecation warning. This function
    is scheduled to be removed in pytest-4.0. (2876 &lt;https://github.com/pytest-dev/pytest/issues/2876&gt;_)
  • Internal move of the parameterset extraction to a more maintainable place.
    (2877 &lt;https://github.com/pytest-dev/pytest/issues/2877&gt;_)
  • Internal refactoring to simplify scope node lookup. (2910 &lt;https://github.com/pytest-dev/pytest/issues/2910&gt;_)
  • Configure pytest to prevent pip from installing pytest in unsupported
    Python versions. (2922 &lt;https://github.com/pytest-dev/pytest/issues/2922&gt;_)

3.2.5

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

Bug Fixes

  • Remove py&lt;1.5 restriction from pytest as this can cause version
    conflicts in some installations. (2926 &lt;https://github.com/pytest-dev/pytest/issues/2926&gt;_)

3.2.4

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

Bug Fixes

  • Fix the bug where running with --pyargs will result in items with
    empty parent.nodeid if run from a different root directory. (2775 &lt;https://github.com/pytest-dev/pytest/issues/2775&gt;_)
  • Fix issue with pytest.parametrize if argnames was specified as keyword arguments.
    (2819 &lt;https://github.com/pytest-dev/pytest/issues/2819&gt;_)
  • Strip whitespace from marker names when reading them from INI config. (2856 &lt;https://github.com/pytest-dev/pytest/issues/2856&gt;_)
  • Show full context of doctest source in the pytest output, if the line number of
    failed example in the docstring is < 9. (2882 &lt;https://github.com/pytest-dev/pytest/issues/2882&gt;_)
  • Match fixture paths against actual path segments in order to avoid matching folders which share a prefix.
    (2836 &lt;https://github.com/pytest-dev/pytest/issues/2836&gt;_)

Improved Documentation

  • Introduce a dedicated section about conftest.py. (1505 &lt;https://github.com/pytest-dev/pytest/issues/1505&gt;_)
  • Explicitly mention xpass in the documentation of xfail. (1997 &lt;https://github.com/pytest-dev/pytest/issues/1997&gt;_)
  • Append example for pytest.param in the example/parametrize document. (2658 &lt;https://github.com/pytest-dev/pytest/issues/2658&gt;_)
  • Clarify language of proposal for fixtures parameters (2893 &lt;https://github.com/pytest-dev/pytest/issues/2893&gt;_)
  • List python 3.6 in the documented supported versions in the getting started
    document. (2903 &lt;https://github.com/pytest-dev/pytest/issues/2903&gt;_)
  • Clarify the documentation of available fixture scopes. (538 &lt;https://github.com/pytest-dev/pytest/issues/538&gt;_)
  • Add documentation about the python -m pytest invocation adding the
    current directory to sys.path. (911 &lt;https://github.com/pytest-dev/pytest/issues/911&gt;_)

3.2.3

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

Bug Fixes

  • Fix crash in tab completion when no prefix is given. (2748 &lt;https://github.com/pytest-dev/pytest/issues/2748&gt;_)
  • The equality checking function (__eq__) of MarkDecorator returns
    False if one object is not an instance of MarkDecorator. (2758 &lt;https://github.com/pytest-dev/pytest/issues/2758&gt;_)
  • When running pytest --fixtures-per-test: don't crash if an item has no
    fixtureinfo attribute (e.g. doctests) (2788 &lt;https://github.com/pytest-dev/pytest/issues/2788&gt;)

Improved Documentation

  • In help text of -k option, add example of using not to not select
    certain tests whose names match the provided expression. (1442 &lt;https://github.com/pytest-dev/pytest/issues/1442&gt;_)
  • Add note in parametrize.rst about calling metafunc.parametrize
    multiple times. (1548 &lt;https://github.com/pytest-dev/pytest/issues/1548&gt;_)

Trivial/Internal Changes

  • Set xfail_strict=True in pytest's own test suite to catch expected
    failures as soon as they start to pass. (2722 &lt;https://github.com/pytest-dev/pytest/issues/2722&gt;_)
  • Fix typo in example of passing a callable to markers (in example/markers.rst)
    (2765 &lt;https://github.com/pytest-dev/pytest/issues/2765&gt;_)

3.2.2

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

Bug Fixes

  • Calling the deprecated request.getfuncargvalue() now shows the source of
    the call. (2681 &lt;https://github.com/pytest-dev/pytest/issues/2681&gt;_)
  • Allow tests declared as staticmethod to use fixtures. (2699 &lt;https://github.com/pytest-dev/pytest/issues/2699&gt;_)
  • Fixed edge-case during collection: attributes which raised pytest.fail
    when accessed would abort the entire collection. (2707 &lt;https://github.com/pytest-dev/pytest/issues/2707&gt;_)
  • Fix ReprFuncArgs with mixed unicode and UTF-8 args. (2731 &lt;https://github.com/pytest-dev/pytest/issues/2731&gt;_)

Improved Documentation

  • In examples on working with custom markers, add examples demonstrating the
    usage of pytest.mark.MARKER_NAME.with_args in comparison with
    pytest.mark.MARKER_NAME.__call__ (2604 &lt;https://github.com/pytest-dev/pytest/issues/2604&gt;_)
  • In one of the simple examples, use pytest_collection_modifyitems() to skip
    tests based on a command-line option, allowing its sharing while preventing a
    user error when acessing pytest.config before the argument parsing. (2653 &lt;https://github.com/pytest-dev/pytest/issues/2653&gt;_)

Trivial/Internal Changes

  • Fixed minor error in 'Good Practices/Manual Integration' code snippet.
    (2691 &lt;https://github.com/pytest-dev/pytest/issues/2691&gt;_)
  • Fixed typo in goodpractices.rst. (2721 &lt;https://github.com/pytest-dev/pytest/issues/2721&gt;_)
  • Improve user guidance regarding --resultlog deprecation. (2739 &lt;https://github.com/pytest-dev/pytest/issues/2739&gt;_)

3.2.1

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

Bug Fixes

  • Fixed small terminal glitch when collecting a single test item. (2579 &lt;https://github.com/pytest-dev/pytest/issues/2579&gt;_)
  • Correctly consider / as the file separator to automatically mark plugin
    files for rewrite on Windows. (2591 &lt;https://github.com/pytest- dev/pytest/issues/2591&gt;_)
  • Properly escape test names when setting PYTEST_CURRENT_TEST environment
    variable. (2644 &lt;https://github.com/pytest-dev/pytest/issues/2644&gt;_)
  • Fix error on Windows and Python 3.6+ when sys.stdout has been replaced
    with a stream-like object which does not implement the full io module
    buffer protocol. In particular this affects pytest-xdist users on the
    aforementioned platform. (`2666 <https://gith

@quis quis closed this Apr 23, 2018
@quis quis deleted the pyup-initial-update branch April 23, 2018 15:20
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants