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 #619

Closed
wants to merge 9 commits into from
Closed

Initial Update #619

wants to merge 9 commits into from

Conversation

pyup-bot
Copy link
Collaborator

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

Name used latest pypi
gunicorn 19.4.5 19.6.0 pypi
coverage 4.0.3 4.2 pypi
APScheduler 3.1.0 3.2.0 pypi
Flask-API 0.6.5 0.6.7 pypi
Flask-Cors 2.1.2 3.0.1 pypi
Werkzeug 0.11.8 0.11.11 pypi
rq 0.5.6 0.6.0 pypi
Flask 0.10.1 0.11.1 pypi
requests 2.9.1 2.11.1 pypi

Changelogs

coverage 4.0.3 -> 4.2

4.2


  • Since concurrency=multiprocessing uses subprocesses, options specified on
    the coverage.py command line will not be communicated down to them. Only
    options in the configuration file will apply to the subprocesses.
    Previously, the options didn't apply to the subprocesses, but there was no
    indication. Now it is an error to use --concurrency=multiprocessing and
    other run-affecting options on the command line. This prevents
    failures like those reported in issue 495_.
  • Filtering the HTML report is now faster, thanks to Ville Skyttä.

.. _issue 495: https://bitbucket.org/ned/coveragepy/issues/495/branch-and-concurrency-are-conflicting

4.2b1


Work from the PyCon 2016 Sprints!

  • BACKWARD INCOMPATIBILITY: the coverage combine command now ignores an
    existing .coverage data file. It used to include that file in its
    combining. This caused confusing results, and extra tox "clean" steps. If
    you want the old behavior, use the new coverage combine --append option.
  • The concurrency option can now take multiple values, to support programs
    using multiprocessing and another library such as eventlet. This is only
    possible in the configuration file, not from the command line. The
    configuration file is the only way for sub-processes to all run with the same
    options. Fixes issue 484_. Thanks to Josh Williams for prototyping.
  • Using a concurrency setting of multiprocessing now implies
    --parallel so that the main program is measured similarly to the
    sub-processes.
  • When using automatic subprocess measurement, running coverage commands
    would create spurious data files. This is now fixed, thanks to diagnosis and
    testing by Dan Riti. Closes issue 492
    .
  • A new configuration option, report:sort, controls what column of the
    text report is used to sort the rows. Thanks to Dan Wandschneider, this
    closes issue 199_.
  • The HTML report has a more-visible indicator for which column is being
    sorted. Closes issue 298_, thanks to Josh Williams.
  • If the HTML report cannot find the source for a file, the message now
    suggests using the -i flag to allow the report to continue. Closes
    issue 231_, thanks, Nathan Land.
  • When reports are ignoring errors, there's now a warning if a file cannot be
    parsed, rather than being silently ignored. Closes issue 396_. Thanks,
    Matthew Boehm.
  • A new option for coverage debug is available: coverage debug config
    shows the current configuration. Closes issue 454_, thanks to Matthew
    Boehm.
  • Running coverage as a module (python -m coverage) no longer shows the
    program name as __main__.py. Fixes issue 478_. Thanks, Scott Belden.
  • The test_helpers module has been moved into a separate pip-installable
    package: unittest-mixins_.

.. _automatic subprocess measurement: http://coverage.readthedocs.io/en/latest/subprocess.html
.. _issue 199: https://bitbucket.org/ned/coveragepy/issues/199/add-a-way-to-sort-the-text-report
.. _issue 231: https://bitbucket.org/ned/coveragepy/issues/231/various-default-behavior-in-report-phase
.. _issue 298: https://bitbucket.org/ned/coveragepy/issues/298/show-in-html-report-that-the-columns-are
.. _issue 396: https://bitbucket.org/ned/coveragepy/issues/396/coverage-xml-shouldnt-bail-out-on-parse
.. _issue 454: https://bitbucket.org/ned/coveragepy/issues/454/coverage-debug-config-should-be
.. _issue 478: https://bitbucket.org/ned/coveragepy/issues/478/help-shows-silly-program-name-when-running
.. _issue 484: https://bitbucket.org/ned/coveragepy/issues/484/multiprocessing-greenlet-concurrency
.. _issue 492: https://bitbucket.org/ned/coveragepy/issues/492/subprocess-coverage-strange-detection-of
.. _unittest-mixins: https://pypi.python.org/pypi/unittest-mixins

4.1


  • The internal attribute Reporter.file_reporters was removed in 4.1b3. It
    should have come has no surprise that there were third-party tools out there
    using that attribute. It has been restored, but with a deprecation warning.

4.1b3


  • When running your program, execution can jump from an except X: line to
    some other line when an exception other than X happens. This jump is no
    longer considered a branch when measuring branch coverage.
  • When measuring branch coverage, yield statements that were never resumed
    were incorrectly marked as missing, as reported in issue 440_. This is now
    fixed.
  • During branch coverage of single-line callables like lambdas and generator
    expressions, coverage.py can now distinguish between them never being called,
    or being called but not completed. Fixes issue 90, issue 460 and
    issue 475_.
  • The HTML report now has a map of the file along the rightmost edge of the
    page, giving an overview of where the missed lines are. Thanks, Dmitry
    Shishov.
  • The HTML report now uses different monospaced fonts, favoring Consolas over
    Courier. Along the way, issue 472_ about not properly handling one-space
    indents was fixed. The index page also has slightly different styling, to
    try to make the clickable detail pages more apparent.
  • Missing branches reported with coverage report -m will now say ->exit
    for missed branches to the exit of a function, rather than a negative number.
    Fixes issue 469_.
  • coverage --help and coverage --version now mention which tracer is
    installed, to help diagnose problems. The docs mention which features need
    the C extension. (issue 479_)
  • Officially support PyPy 5.1, which required no changes, just updates to the
    docs.
  • The Coverage.report function had two parameters with non-None defaults,
    which have been changed. show_missing used to default to True, but now
    defaults to None. If you had been calling Coverage.report without
    specifying show_missing, you'll need to explicitly set it to True to keep
    the same behavior. skip_covered used to default to False. It is now None,
    which doesn't change the behavior. This fixes issue 485_.
  • It's never been possible to pass a namespace module to one of the analysis
    functions, but now at least we raise a more specific error message, rather
    than getting confused. (issue 456_)
  • The coverage.process_startup function now returns the Coverage instance
    it creates, as suggested in issue 481_.
  • Make a small tweak to how we compare threads, to avoid buggy custom
    comparison code in thread classes. (issue 245_)

.. _issue 90: https://bitbucket.org/ned/coveragepy/issues/90/lambda-expression-confuses-branch
.. _issue 245: https://bitbucket.org/ned/coveragepy/issues/245/change-solution-for-issue-164
.. _issue 440: https://bitbucket.org/ned/coveragepy/issues/440/yielded-twisted-failure-marked-as-missed
.. _issue 456: https://bitbucket.org/ned/coveragepy/issues/456/coverage-breaks-with-implicit-namespaces
.. _issue 460: https://bitbucket.org/ned/coveragepy/issues/460/confusing-html-report-for-certain-partial
.. _issue 469: https://bitbucket.org/ned/coveragepy/issues/469/strange-1-line-number-in-branch-coverage
.. _issue 472: https://bitbucket.org/ned/coveragepy/issues/472/html-report-indents-incorrectly-for-one
.. _issue 475: https://bitbucket.org/ned/coveragepy/issues/475/generator-expression-is-marked-as-not
.. _issue 479: https://bitbucket.org/ned/coveragepy/issues/479/clarify-the-need-for-the-c-extension
.. _issue 481: https://bitbucket.org/ned/coveragepy/issues/481/asyncioprocesspoolexecutor-tracing-not
.. _issue 485: https://bitbucket.org/ned/coveragepy/issues/485/coveragereport-ignores-show_missing-and

4.1b2


  • Problems with the new branch measurement in 4.1 beta 1 were fixed:
    • Class docstrings were considered executable. Now they no longer are.
    • yield from and await were considered returns from functions, since
      they could tranfer control to the caller. This produced unhelpful "missing
      branch" reports in a number of circumstances. Now they no longer are
      considered returns.
    • In unusual situations, a missing branch to a negative number was reported.
      This has been fixed, closing issue 466_.
  • The XML report now produces correct package names for modules found in
    directories specified with source=. Fixes issue 465_.
  • coverage report won't produce trailing whitespace.

.. _issue 465: https://bitbucket.org/ned/coveragepy/issues/465/coveragexml-produces-package-names-with-an
.. _issue 466: https://bitbucket.org/ned/coveragepy/issues/466/impossible-missed-branch-to-a-negative

4.1b1


  • Branch analysis has been rewritten: it used to be based on bytecode, but now
    uses AST analysis. This has changed a number of things:
    • More code paths are now considered runnable, especially in
      try/except structures. This may mean that coverage.py will
      identify more code paths as uncovered. This could either raise or lower
      your overall coverage number.
    • Python 3.5's async and await keywords are properly supported,
      fixing issue 434_.
    • Some long-standing branch coverage bugs were fixed:
      • issue 129_: functions with only a docstring for a body would
        incorrectly report a missing branch on the def line.
    • issue 212_: code in an except block could be incorrectly marked as
      a missing branch.
    • issue 146_: context managers (with statements) in a loop or try
      block could confuse the branch measurement, reporting incorrect partial
      branches.
    • issue 422_: in Python 3.5, an actual partial branch could be marked as
      complete.
  • Pragmas to disable coverage measurement can now be used on decorator lines,
    and they will apply to the entire function or class being decorated. This
    implements the feature requested in issue 131_.
  • Multiprocessing support is now available on Windows. Thanks, Rodrigue
    Cloutier.
  • Files with two encoding declarations are properly supported, fixing
    issue 453_. Thanks, Max Linke.
  • Non-ascii characters in regexes in the configuration file worked in 3.7, but
    stopped working in 4.0. Now they work again, closing issue 455_.
  • Form-feed characters would prevent accurate determination of the beginning of
    statements in the rest of the file. This is now fixed, closing issue 461_.

.. _issue 129: https://bitbucket.org/ned/coveragepy/issues/129/misleading-branch-coverage-of-empty
.. _issue 131: https://bitbucket.org/ned/coveragepy/issues/131/pragma-on-a-decorator-line-should-affect
.. _issue 146: https://bitbucket.org/ned/coveragepy/issues/146/context-managers-confuse-branch-coverage
.. _issue 212: https://bitbucket.org/ned/coveragepy/issues/212/coverage-erroneously-reports-partial
.. _issue 422: https://bitbucket.org/ned/coveragepy/issues/422/python35-partial-branch-marked-as-fully
.. _issue 434: https://bitbucket.org/ned/coveragepy/issues/434/indexerror-in-python-35
.. _issue 453: https://bitbucket.org/ned/coveragepy/issues/453/source-code-encoding-can-only-be-specified
.. _issue 455: https://bitbucket.org/ned/coveragepy/issues/455/unusual-exclusions-stopped-working-in
.. _issue 461: https://bitbucket.org/ned/coveragepy/issues/461/multiline-asserts-need-too-many-pragma

APScheduler 3.1.0 -> 3.2.0

3.2.0


  • Added the ability to pause and unpause the scheduler
  • Fixed pickling problems with persistent jobs when upgrading from 3.0.x
  • Fixed AttributeError when importing apscheduler with setuptools < 11.0
  • Fixed some events missing from apscheduler.events.__all__ and
    apscheduler.events.EVENTS_ALL
  • Fixed wrong run time being set for date trigger when the timezone isn't the same as the local one
  • Fixed builtin id() erroneously used in MongoDBJobStore's JobLookupError()
  • Fixed endless loop with CronTrigger that may occur when the computer's clock resolution is too
    low (thanks to Jinping Bai for the patch)

Flask-Cors 2.1.2 -> 3.0.1

3.0.1

Fixes Issue 183: regression whereby regular expressions for origins with an "?" are not properly matched.

3.0.0

This release is largely a number of small bug fixes and improvements, along with a default change in behavior, which is technically a breaking change.

Breaking Change
We added an always_send option, enabled by default, which makes Flask-CORS inject headers even if the request did not have an 'Origin' header. Because this makes debugging far easier, and has very little downside, it has also been set as the default, making it technically a breaking change. If this actually broke something for you, please let me know, and I'll help you work around it. (156) c7a1ecdad375a796155da6aca6a1f750337175f3

Other improvements:

  • Adds building of universal wheels (175) 4674c3d54260f8897bd18e5502509363dcd0d0da
  • Makes Flask-CORS compatible with OAuthLib's custom header class ... (172) aaaf904845997a3b684bc6677bdfc91656a85a04
  • Fixes incorrect substring matches when strings are used as origins or headers (165) 9cd3f295bd6b0ba87cc5f2afaca01b91ff43e72c
  • Fixes logging when unknown options are supplied (152) bddb13ca6636c5d559ec67a95309c9607a3fcaba

2.1.3

Fixes Vary:Origin header sending behavior when regex origins are used.

rq 0.5.6 -> 0.6.0

0.6.0

  • Jobs that depend on job with result_ttl == 0 are now properly enqueued.
  • cancel_job now works properly. Thanks jlopex!
  • Jobs that execute successfully now no longer tries to remove itself from queue. Thanks amyangfei!
  • Worker now properly logs Falsy return values. Thanks liorsbg!
  • Worker.work() now accepts logging_level argument. Thanks jlopex!
  • Logging related fixes by redbaron4 and butla!
  • job decorator now accepts ttl argument. Thanks javimb!
  • Worker.__init__ now accepts queue_class keyword argument. Thanks antoineleclair!
  • Worker now saves warm shutdown time. You can access this property from worker.shutdown_requested_date. Thanks olingerc!
  • Synchronous queues now properly sets completed job status as finished. Thanks ecarreras!
  • Worker now correctly deletes current_job_id after failed job execution. Thanks olingerc!
  • Job.create() and queue.enqueue_call() now accepts meta argument. Thanks tornstrom!
  • Added job.started_at property. Thanks samuelcolvin!
  • Cleaned up the implementation of job.cancel() and job.delete(). Thanks glaslos!
  • Worker.execute_job() now exports RQ_WORKER_ID and RQ_JOB_ID to OS environment variables. Thanks mgk!
  • rqinfo now accepts --config option. Thanks kfrendrich!
  • Worker class now has request_force_stop() and request_stop() methods that can be overridden by custom worker classes. Thanks samuelcolvin!
  • Other minor fixes by VicarEscaped, kampfschlaefer, ccurvey, zfz, antoineleclair,
    orangain, nicksnell, SkyLothar, ahxxm and horida.

Flask 0.10.1 -> 0.11.1

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.

requests 2.9.1 -> 2.11.1

2.11.1

+++++++++++++++++++

Bugfixes

  • Fixed a bug when using iter_content with decode_unicode=True for
    streamed bodies would raise AttributeError. This bug was introduced in
    2.11.
  • Strip Content-Type and Transfer-Encoding headers from the header block when
    following a redirect that transforms the verb from POST/PUT to GET.

2.11.0

+++++++++++++++++++

Improvements

  • Added support for the ALL_PROXY environment variable.
  • Reject header values that contain leading whitespace or newline characters to
    reduce risk of header smuggling.

Bugfixes

  • Fixed occasional TypeError when attempting to decode a JSON response that
    occurred in an error case. Now correctly returns a ValueError.
  • Requests would incorrectly ignore a non-CIDR IP address in the NO_PROXY
    environment variables: Requests now treats it as a specific IP.
  • Fixed a bug when sending JSON data that could cause us to encounter obscure
    OpenSSL errors in certain network conditions (yes, really).
  • Added type checks to ensure that iter_content only accepts integers and
    None for chunk sizes.
  • Fixed issue where responses whose body had not been fully consumed would have
    the underlying connection closed but not returned to the connection pool,
    which could cause Requests to hang in situations where the HTTPAdapter
    had been configured to use a blocking connection pool.

Miscellaneous

  • Updated bundled urllib3 to 1.16.
  • Some previous releases accidentally accepted non-strings as acceptable header values. This release does not.

2.10.0

+++++++++++++++++++

New Features

  • SOCKS Proxy Support! (requires PySocks; $ pip install requests[socks])

Miscellaneous

  • Updated bundled urllib3 to 1.15.1.

2.9.2

++++++++++++++++++

Improvements

  • Change built-in CaseInsensitiveDict (used for headers) to use OrderedDict
    as its underlying datastore.

Bugfixes

  • Don't use redirect_cache if allow_redirects=False
  • When passed objects that throw exceptions from tell(), send them via
    chunked transfer encoding instead of failing.
  • Raise a ProxyError for proxy related connection issues.

Once you have closed this pull request, I'll create seperate pull requests for every update as soon as I find them.

That's it for now!

Happy merging! 🤖

@suchow suchow closed this Jan 3, 2017
@suchow suchow deleted the pyup-initial-update branch January 3, 2017 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants