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

Merged
merged 25 commits into from
Jul 26, 2017
Merged

Initial Update #1357

merged 25 commits into from
Jul 26, 2017

Conversation

pyup-bot
Copy link
Contributor

@pyup-bot pyup-bot commented Jul 6, 2017

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.9.1 » 1.10.0 PyPI | Changelog | Docs
ago 0.0.8 » 0.0.9 PyPI | Repo
Flask 0.10.1 » 0.12.2 PyPI | Changelog | Repo
Flask-WTF 0.11 » 0.14.2 PyPI | Changelog | Repo | Docs
Flask-Login 0.3.2 » 0.4.0 PyPI | Changelog | Repo | Docs
credstash 1.8.0 » 1.13.2 PyPI | Changelog | Repo
Pygments 2.0.2 » 2.2.0 PyPI | Changelog | Homepage
py-gfm 0.1.2 » 0.1.3 PyPI | Changelog | Repo | Docs
lxml 3.6.0 » 3.8.0 PyPI | Changelog | Homepage | Bugtracker
pyexcel 0.2.1 » 0.5.0 PyPI | Changelog | Homepage | Docs
pyexcel-io 0.1.0 » 0.4.2 PyPI | Changelog
pyexcel-xls 0.1.0 » 0.4.0 PyPI | Changelog | Homepage | Docs
pyexcel-xlsx 0.1.0 » 0.4.0 PyPI | Changelog | Homepage | Docs
pyexcel-ods3 0.1.1 » 0.4.0 PyPI | Changelog | Homepage
pytz 2016.4 » 2017.2 PyPI | Homepage | Docs
gunicorn 19.6.0 » 19.7.1 PyPI | Changelog | Homepage
whitenoise 1.0.6 » 3.3.0 PyPI | Changelog | Homepage
notifications-python-client 3.1.0 » 4.3.1 PyPI | Changelog | Repo
pytest 3.0.2 » 3.1.3 PyPI | Changelog | Repo | Homepage
pytest-mock 1.2 » 1.6.0 PyPI | Changelog | Repo
pytest-cov 2.3.1 » 2.5.1 PyPI | Changelog | Repo
pytest-xdist 1.14 » 1.18.1 PyPI | Changelog | Repo
moto 0.4.25 » 1.0.1 PyPI | Changelog | Repo
beautifulsoup4 4.5.1 » 4.6.0 PyPI | Changelog | Homepage
freezegun 0.3.7 » 0.3.9 PyPI | Changelog | Repo

Changelogs

cffi 1.9.1 -> 1.10.0

1.10

=====

  • Issue 295: use calloc() directly instead of
    PyObject_Malloc()+memset() to handle ffi.new() with a default
    allocator. Speeds up ffi.new(large-array) where most of the time
    you never touch most of the array.
  • Some OS/X build fixes ("only with Xcode but without CLT").
  • Improve a couple of error messages: when getting mismatched versions
    of cffi and its backend; and when calling functions which cannot be
    called with libffi because an argument is a struct that is "too
    complicated" (and not a struct pointer, which always works).
  • Add support for some unusual compilers (non-msvc, non-gcc, non-icc,
    non-clang)
  • Implemented the remaining cases for ffi.from_buffer. Now all
    buffer/memoryview objects can be passed. The one remaining check is
    against passing unicode strings in Python 2. (They support the buffer
    interface, but that gives the raw bytes behind the UTF16/UCS4 storage,
    which is most of the times not what you expect. In Python 3 this has
    been fixed and the unicode strings don't support the memoryview
    interface any more.)
  • The C type _Bool or bool now converts to a Python boolean
    when reading, instead of the content of the byte as an integer. The
    potential incompatibility here is what occurs if the byte contains a
    value different from 0 and 1. Previously, it would just return it;
    with this change, CFFI raises an exception in this case. But this
    case means "undefined behavior" in C; if you really have to interface
    with a library relying on this, don't use bool in the CFFI side.
    Also, it is still valid to use a byte string as initializer for a
    bool[], but now it must only contain \x00 or \x01. As an
    aside, ffi.string() no longer works on bool[] (but it never
    made much sense, as this function stops at the first zero).
  • ffi.buffer is now the name of cffi's buffer type, and
    ffi.buffer() works like before but is the constructor of that type.
  • ffi.addressof(lib, "name") now works also in in-line mode, not
    only in out-of-line mode. This is useful for taking the address of
    global variables.
  • Issue 255: cdata objects of a primitive type (integers, floats,
    char) are now compared and ordered by value. For example, <cdata 'int' 42> compares equal to 42 and <cdata 'char' b'A'>
    compares equal to b'A'. Unlike C, <cdata 'int' -1> does not
    compare equal to ffi.cast("unsigned int", -1): it compares
    smaller, because -1 < 4294967295.
  • PyPy: ffi.new() and ffi.new_allocator()() did not record
    "memory pressure", causing the GC to run too infrequently if you call
    ffi.new() very often and/or with large arrays. Fixed in PyPy 5.7.
  • Support in ffi.cdef() for numeric expressions with + or
    -. Assumes that there is no overflow; it should be fixed first
    before we add more general support for arbitrary arithmetic on
    constants.

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.

Flask-WTF 0.11 -> 0.14.2

0.14.2


Released 2017-01-10

  • Fix bug where FlaskForm assumed meta argument was not None if it
    was passed. (278_)

.. _278: pallets-eco/flask-wtf#278

0.14.1


Released 2017-01-10

  • Fix bug where the file validators would incorrectly identify an empty file as
    valid data. (276, 277)
  • FileField is no longer deprecated. The data is checked during
    processing and only set if it's a valid file.
  • has_file is deprecated; it's now equivalent to bool(field.data).
  • FileRequired and FileAllowed work with both the Flask-WTF and
    WTForms FileField classes.
  • The Optional validator now works with FileField.

.. _276: pallets-eco/flask-wtf#276
.. _277: pallets-eco/flask-wtf#277

0.14


Released 2017-01-06

  • Use itsdangerous to sign CSRF tokens and check expiration instead of doing it
    ourselves. (264_)
  • All tokens are URL safe, removing the url_safe parameter from
    generate_csrf. (206_)
  • All tokens store a timestamp, which is checked in validate_csrf. The
    time_limit parameter of generate_csrf is removed.
  • Remove the app attribute from CsrfProtect, use current_app.
    (264_)
  • CsrfProtect protects the DELETE method by default. (264_)
  • The same CSRF token is generated for the lifetime of a request. It is exposed
    as g.csrf_token for use during testing. (227, 264)
  • CsrfProtect.error_handler is deprecated. (264_)
  • Handlers that return a response work in addition to those that raise an
    error. The behavior was not clear in previous docs.
  • (200, 209, 243, 252)
  • Use Form.Meta instead of deprecated SecureForm for CSRF (and
    everything else). (216, 271)
  • csrf_enabled parameter is still recognized but deprecated. All other
    attributes and methods from SecureForm are removed. (271_)
  • Provide WTF_CSRF_FIELD_NAME to configure the name of the CSRF token.
    (271_)
  • validate_csrf raises wtforms.ValidationError with specific messages
    instead of returning True or False. This breaks anything that was
    calling the method directly. (239, 271)
  • CSRF errors are logged as well as raised. (239_)
  • CsrfProtect is renamed to CSRFProtect. A deprecation warning is issued
    when using the old name. CsrfError is renamed to CSRFError without
    deprecation. (271_)
  • FileField is deprecated because it no longer provides functionality over
    the provided validators. Use wtforms.FileField directly. (272_)

.. _200: pallets-eco/flask-wtf#200
.. _209: pallets-eco/flask-wtf#209
.. _216: pallets-eco/flask-wtf#216
.. _227: pallets-eco/flask-wtf#227
.. _239: pallets-eco/flask-wtf#239
.. _243: pallets-eco/flask-wtf#243
.. _252: pallets-eco/flask-wtf#252
.. _264: pallets-eco/flask-wtf#264
.. _271: pallets-eco/flask-wtf#271
.. _272: pallets-eco/flask-wtf#272

0.13.1


Released 2016/10/6

  • Deprecation warning for Form is shown during __init__ instead of immediately when subclassing. (262_)
  • Don't use pkg_resources to get version, for compatibility with GAE. (261_)

.. _261: pallets-eco/flask-wtf#261
.. _262: pallets-eco/flask-wtf#262

0.13


Released 2016/09/29

  • Form is renamed to FlaskForm in order to avoid name collision with WTForms's base class. Using Form will show a deprecation warning. (250_)
  • hidden_tag no longer wraps the hidden inputs in a hidden div. This is valid HTML5 and any modern HTML parser will behave correctly. (217, 193)
  • flask_wtf.html5 is deprecated. Import directly from wtforms.fields.html5. (251_)
  • is_submitted is true for PATCH and DELETE in addition to POST and PUT. (187_)
  • generate_csrf takes a token_key parameter to specify the key stored in the session. (206_)
  • generate_csrf takes a url_safe parameter to allow the token to be used in URLs. (206_)
  • form.data can be accessed multiple times without raising an exception. (248_)
  • File extension with multiple parts (.tar.gz) can be used in the FileAllowed validator. (201_)

.. _187: pallets-eco/flask-wtf#187
.. _193: pallets-eco/flask-wtf#193
.. _201: pallets-eco/flask-wtf#201
.. _206: pallets-eco/flask-wtf#206
.. _217: pallets-eco/flask-wtf#217
.. _248: pallets-eco/flask-wtf#248
.. _250: pallets-eco/flask-wtf#250
.. _251: pallets-eco/flask-wtf#251

0.12


Released 2015/07/09

  • Abstract protect_csrf() into a separate method
  • Update reCAPTCHA configuration
  • Fix reCAPTCHA error handle

Flask-Login 0.3.2 -> 0.4.0

0.4.0


Released on October 26th, 2016

  • Fixes OPTIONS exemption from login. 244
  • Fixes use of MD5 by replacing with SHA512. 264
  • BREAKING: The login_manager.token_handler function, get_auth_token method
    on the User class, and the utils.make_secure_token utility function have
    been removed to prevent users from creating insecure auth implementations.
    Use the Alternative Tokens example from the docs instead. 291

credstash 1.8.0 -> 1.13.2

1.13.2

1.13.1

1.13.0 had a bunch of string encoding issues on python3. This release fixes that.

You can upgrade to the latest install by doing pip install -U credstash

1.13.0

New Stuff

  • Replaced PyCrypto with cryptography (https://cryptography.io/en/latest/), and a bunch of refactorings to separate KMS and crypto operations by nathan-muir
  • fix the to the non-default digest method and a travis fix by toidi
  • Added the ability to get secrets by wildcard when using credstash as a library by rogthefrog
  • Some exception cleanup by zhaow-de
  • helptext improvements by aboyett
  • support the dotenv output format by amerghazal
  • README improvements by jsm and jakubka
  • Allow default secret in putSecret by atjones0011
  • some flake8 fixes by jessemyers

Thanks to everyone who contributed to this release!

You can find this release on pypi by doing pip install credstash

1.12.0

New this release

  • New -d flag on put operations to choose what digest to use (defaults to SHA256). Thanks to Brett Filiatreault
  • Docs improvements from mbainter, egOgre, and NightKev
  • flake8 improvements from jessemyers
  • Tests from vccabral

Thank you everyone for your contributions!

You can download this new release from pypi by doing pip install credstash.

1.11.0

New Stuff

  • bug fix from gbarboza removing some cruft
  • AWESOME new feature from l2ol33rt that lets you use assume an IAM role with credstash. This should help not only with scoped down roles in a single account, but also using credstash across accounts!

New release is in PYPI, etc.

1.10.0

New Stuff

  • fixes from gozer to handle default region correctly
  • an enhancement from dmexe to read values from stdin when doing a credstash put

This release is in pypi, so you can get it with pip

1.9.1

New Stuff

  • Region handling fix from nelhage
  • Profile enhancements from Caid11

New version is in pypi

1.9.0

New Stuff

  • Fix from michel-slm to make credstash honor the region set in ~/.aws/config
  • Caid11 submitted a patch that lets you pass a profile to credstash functions.
  • Better error reporting from nelhage

The new release is in pypi, so you can easily upgrade by doing pip install -U credstash

Pygments 2.0.2 -> 2.2.0

2.2.0


(release Jan 22, 2017)

  • Added lexers:
  • AMPL
  • TypoScript (1173)
  • Varnish config (PR554)
  • Clean (PR503)
  • WDiff (PR513)
  • Flatline (PR551)
  • Silver (PR537)
  • HSAIL (PR518)
  • JSGF (PR546)
  • NCAR command language (PR536)
  • Extempore (PR530)
  • Cap'n Proto (PR595)
  • Whiley (PR573)
  • Monte (PR592)
  • Crystal (PR576)
  • Snowball (PR589)
  • CapDL (PR579)
  • NuSMV (PR564)
  • SAS, Stata (PR593)
  • Added the ability to load lexer and formatter classes directly from files
    with the -x command line option and the lexers.load_lexer_from_file()
    and formatters.load_formatter_from_file() functions. (PR559)
  • Added lexers.find_lexer_class_by_name(). (1203)
  • Added new token types and lexing for magic methods and variables in Python
    and PHP.
  • Added a new token type for string affixes and lexing for them in Python, C++
    and Postgresql lexers.
  • Added a new token type for heredoc (and similar) string delimiters and
    lexing for them in C++, Perl, PHP, Postgresql and Ruby lexers.
  • Styles can now define colors with ANSI colors for use in the 256-color
    terminal formatter. (PR531)
  • Improved the CSS lexer. (1083, 1130)
  • Added "Rainbow Dash" style. (PR623)
  • Delay loading pkg_resources, which takes a long while to import. (PR690)

2.1.3


(released Mar 2, 2016)

  • Fixed regression in Bash lexer (PR563)

2.1.2


(released Feb 29, 2016)

  • Fixed Python 3 regression in image formatter (1215)
  • Fixed regression in Bash lexer (PR562)

2.1.1


(relased Feb 14, 2016)

  • Fixed Jython compatibility (1205)
  • Fixed HTML formatter output with leading empty lines (1111)
  • Added a mapping table for LaTeX encodings and added utf8 (1152)
  • Fixed image formatter font searching on Macs (1188)
  • Fixed deepcopy-ing of Token instances (1168)
  • Fixed Julia string interpolation (1170)
  • Fixed statefulness of HttpLexer between get_tokens calls
  • Many smaller fixes to various lexers

2.1


(released Jan 17, 2016)

  • Added lexers:
  • Emacs Lisp (PR431)
  • Arduino (PR442)
  • Modula-2 with multi-dialect support (1090)
  • Fortran fixed format (PR213)
  • Archetype Definition language (PR483)
  • Terraform (PR432)
  • Jcl, Easytrieve (PR208)
  • ParaSail (PR381)
  • Boogie (PR420)
  • Turtle (PR425)
  • Fish Shell (PR422)
  • Roboconf (PR449)
  • Test Anything Protocol (PR428)
  • Shen (PR385)
  • Component Pascal (PR437)
  • SuperCollider (PR472)
  • Shell consoles (Tcsh, PowerShell, MSDOS) (PR479)
  • Elm and J (PR452)
  • Crmsh (PR440)
  • Praat (PR492)
  • CSound (PR494)
  • Ezhil (PR443)
  • Thrift (PR469)
  • QVT Operational (PR204)
  • Hexdump (PR508)
  • CAmkES Configuration (PR462)
  • Added styles:
  • Lovelace (PR456)
  • Algol and Algol-nu (1090)
  • Added formatters:
  • IRC (PR458)
  • True color (24-bit) terminal ANSI sequences (1142)
    (formatter alias: "16m")
  • New "filename" option for HTML formatter (PR527).
  • Improved performance of the HTML formatter for long lines (PR504).
  • Updated autopygmentize script (PR445).
  • Fixed style inheritance for non-standard token types in HTML output.
  • Added support for async/await to Python 3 lexer.
  • Rewrote linenos option for TerminalFormatter (it's better, but slightly
    different output than before) (1147).
  • Javascript lexer now supports most of ES6 (1100).
  • Cocoa builtins updated for iOS 8.1 (PR433).
  • Combined BashSessionLexer and ShellSessionLexer, new version should support
    the prompt styles of either.
  • Added option to pygmentize to show a full traceback on exceptions.
  • Fixed incomplete output on Windows and Python 3 (e.g. when using iPython
    Notebook) (1153).
  • Allowed more traceback styles in Python console lexer (PR253).
  • Added decorators to TypeScript (PR509).
  • Fix highlighting of certain IRC logs formats (1076).

py-gfm 0.1.2 -> 0.1.3

0.1.3

  • Task lists: support for list attributes (issues 2, 3)

lxml 3.6.0 -> 3.8.0

3.8.0

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

Features added

  • ElementTree.write() has a new option doctype that writes out a
    doctype string before the serialisation, in the same way as tostring().
  • GH220: xmlfile allows switching output methods at an element level.
    Patch by Burak Arslan.
  • LP1595781, GH240: added a PyCapsule Python API and C-level API for
    passing externally generated libxml2 documents into lxml.
  • GH244: error log entries have a new property path with an XPath
    expression (if known, None otherwise) that points to the tree element
    responsible for the error. Patch by Bob Kline.
  • The namespace prefix mapping that can be used in ElementPath now injects
    a default namespace when passing a None prefix.

Bugs fixed

  • GH238: Character escapes were not hex-encoded in the xmlfile serialiser.
    Patch by matejcik.
  • GH229: fix for externally created XML documents. Patch by Theodore Dubois.
  • LP1665241, GH228: Form data handling in lxml.html no longer strips the
    option values specified in form attributes but only the text values.
    Patch by Ashish Kulkarni.
  • LP1551797: revert previous fix for XSLT error logging as it breaks
    multi-threaded XSLT processing.
  • LP1673355, GH233: fromstring() html5parser failed to parse byte strings.

Other changes

  • The previously undocumented docstring option in ElementTree.write()
    produces a deprecation warning and will eventually be removed.

3.7.4

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

Bugs fixed

  • LP1551797: revert previous fix for XSLT error logging as it breaks
    multi-threaded XSLT processing.
  • LP1673355, GH233: fromstring() html5parser failed to parse byte strings.

3.7.3

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

Bugs fixed

  • GH218 was ineffective in Python 3.
  • GH222: lxml.html.submit_form() failed in Python 3.
    Patch by Jakub Wilk.

3.7.2

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

  • GH220: xmlfile allows switching output methods at an element level.
    Patch by Burak Arslan.

Bugs fixed

  • Work around installation problems in recent Python 2.7 versions
    due to FTP download failures.
  • GH219: xmlfile.element() was not properly quoting attribute values.
    Patch by Burak Arslan.
  • GH218: xmlfile.element() was not properly escaping text content of
    script/style tags. Patch by Burak Arslan.

3.7.1

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

  • No source changes, issued only to solve problems with the
    binary packages released for 3.7.0.

3.7.0

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

Features added

  • GH217: XMLSyntaxError now behaves more like its SyntaxError
    baseclass. Patch by Philipp A.
  • GH216: HTMLParser() now supports the same collect_ids parameter
    as XMLParser(). Patch by Burak Arslan.
  • GH210: Allow specifying a serialisation method in xmlfile.write().
    Patch by Burak Arslan.
  • GH203: New option default_doctype in HTMLParser that allows
    disabling the automatic doctype creation. Patch by Shadab Zafar.
  • GH201: Calling the method .set('attrname') without value argument
    (or None) on HTML elements creates an attribute without value that
    serialises like <div attrname></div>. Patch by Daniel Holth.
  • GH197: Ignore form input fields in form_values() when they are
    marked as disabled in HTML. Patch by Kristian Klemon.

Bugs fixed

  • GH206: File name and line number were missing from XSLT error messages.
    Patch by Marcus Brinkmann.

Other changes

  • Log entries no longer allow anything but plain string objects as message text
    and file name.
  • zlib is included in the list of statically built libraries.

3.6.4

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

  • GH204, LP1614693: build fix for MacOS-X.

3.6.3

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

  • LP1614603: change linker flags to build multi-linux wheels

3.6.2

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

  • LP1614603: release without source changes to provide cleanly built Linux wheels

3.6.1

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

Features added

  • GH180: Separate option inline_style for Cleaner that only removes style
    attributes instead of all styles. Patch by Christian Pedersen.
  • GH196: Windows build support for Python 3.5. Contribution by Maximilian Hils.

Bugs fixed

  • GH199: Exclude file fields from FormElement.form_values (as browsers do).
    Patch by Tomas Divis.
  • GH198, LP1568167: Try to provide base URL from Resolver.resolve_string().
    Patch by Michael van Tellingen.
  • GH191: More accurate float serialisation in objectify.FloatElement.
    Patch by Holger Joukl.
  • LP1551797: Repair XSLT error logging. Patch by Marcus Brinkmann.

pyexcel 0.2.1 -> 0.5.0

0.5.0

convert BookStream to Book before saving.
. 83 <https://github.com/pyexcel/pyexcel/issues/83>_, file closing mechanism
is enfored. free_resource is added and it should be called when iget_array,
iget_records, isave_as and/or isave_book_as are used.

Updated


. array is passed to pyexcel.Sheet as reference. it means your array data will
be modified.

Removed


. pyexcel.Writer and pyexcel.BookWriter were removed
. pyexcel.load_book_from_sql and pyexcel.load_from_sql were removed
. pyexcel.deprecated.load_from_query_sets,
pyexcel.deprecated.load_book_from_django_models and
pyexcel.deprecated.load_from_django_model were removed
. Removed plugin loading code and lml is used instead

0.4.5


Updated


. 80 <https://github.com/pyexcel/pyexcel/issues/80>_: remove pyexcel-chart
import from v0.4.x

0.4.4


Updated


. 68 <https://github.com/pyexcel/pyexcel/issues/68>_: regression
save_to_memory() should have returned a stream instance which has
been reset to zero if possible. The exception is sys.stdout, which cannot
be reset.

. 74 <https://github.com/pyexcel/pyexcel/issues/74>_: Not able to
handle decimal.Decimal

Removed


. remove get_{{file_type}}_stream functions from pyexcel.Sheet and
pyexcel.Book introduced since 0.4.3.

0.4.3


Added


. '.stream' attribute are attached to ~pyexcel.Sheet and
~pyexcel.Book to get direct access the underneath stream
in responding to file type attributes, such as sheet.xls. it helps provide a custom
stream to external world, for example, Sheet.stream.csv gives a text stream
that contains csv formatted data. Book.stream.xls returns a xls format
data in a byte stream.

Updated


. Better error reporting when an unknown parameters or unsupported file types
were given to the signature functions.

0.4.2


Updated


. Raise exception if the incoming sheet does not have column names. In other
words, only sheet with column names could be saved to database. sheet with
row names cannot be saved. The alternative is to transpose the sheet, then
name_columns_by_row and then save.
. fix iget_records where a non-uniform content should be given,
e.g. [["x", "y"], [1, 2], [3]], some record would become non-uniform, e.g.
key 'y' would be missing from the second record.
. skip_empty_rows is applicable when saving a python data structure to
another data source. For example, if your array contains a row which is
consisted of empty string, such as ['', '', '' ... ''], please specify
skip_empty_rows=False in order to preserve it. This becomes subtle when
you try save a python dictionary where empty rows is not easy to be spotted.
. 69 <https://github.com/pyexcel/pyexcel/issues/69>_: better documentation
for save_book_as.

0.4.1


Updated


. 68 <https://github.com/pyexcel/pyexcel/issues/68>_: regression
save_to_memory() should have returned a stream instance.

0.4.0


Updated


. pyexcel-io plugin interface now updated to use
lml <https://github.com/chfw/lml>_.

0.3.4


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
. 33 <https://github.com/pyexcel/pyexcel-io/issues/33>, handle mmap object
differently given as file content. This issue has put in a priority to single
sheet csv over multiple sheets in a single memory stream. The latter format
is pyexcel own creation but is rarely used. In latter case,
multiple_sheet=True should be passed along get_data.
. 34 <https://github.com/pyexcel/pyexcel-io/issues/34>
, treat mmap object
as a file content.
. 35 <https://github.com/pyexcel/pyexcel-io/issues/35>_, encoding parameter
take no effect when given along with file content
. use ZIP_DEFALTED to really do the compression

0.3.3


Updated


. 18 <https://github.com/pyexcel/pyexcel-xls/issues/18>_, pass on
encoding_override and others to xlrd.

0.3.2


. Remove the false claim that this library writes xlsm

0.3.1


. 1 <https://github.com/pyexcel/pyexcel-xlsxw/issues/1>_,
Feature request: support Workbook options in XLSXWriter.open()

0.3.0

0.2.6


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 24 <https://github.com/pyexcel/pyexcel-io/issues/24>__, pass on batch_size

0.2.5


Updated:


. 58 <https://github.com/pyexcel/pyexcel/issues/58>_: texttable should
have been made as compulsory requirement

0.2.4


Updated:


. For python 2, writing to sys.stdout by pyexcel-cli raise IOError.

0.2.3


Updated


. 10 <https://github.com/pyexcel/pyexcel-xls/issues/10>_, To support
generator as member of the incoming two dimensional data

0.2.2


Added


. support pagination. two pairs: start_row, row_limit and start_column,
column_limit help you deal with large files.

pyexcel-io 0.1.0 -> 0.4.2

0.4.2


Updated


. 37 <https://github.com/pyexcel/pyexcel-io/issues/37>_, permanently fix
the residue folder pyexcel by release all future releases in a clean clone.

0.4.1


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 39 <https://github.com/pyexcel/pyexcel-io/issues/39>_, raise exception
when bulk save in django fails. Please bulk_save=False if you as the
developer choose to save the records one by one if bulk_save cannot be
used. However, exception in one-by-one save case will be raised as well.
This change is made to raise exception in the first place so that you as
the developer will be suprised when it was deployed in production.

0.4.0


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
. 'built-in' as the value to the parameter 'library' as parameter to invoke
pyexcel-io's built-in csv, tsv, csvz, tsvz, django and sql won't work.
It is renamed to 'pyexcel-io'.
. built-in csv, tsv, csvz, tsvz, django and sql are lazy loaded.
. pyexcel-io plugin interface has been updated. v0.3.x plugins won't work.
. 32 <https://github.com/pyexcel/pyexcel-io/issues/32>_, csv and csvz file
handle are made sure to be closed. File close mechanism is enfored.
. iget_data function is introduced to cope with dangling file handle issue.

Removed
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. Removed plugin loading code and lml is used instead

0.3.4


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
. 33 <https://github.com/pyexcel/pyexcel-io/issues/33>, handle mmap object
differently given as file content. This issue has put in a priority to single
sheet csv over multiple sheets in a single memory stream. The latter format
is pyexcel own creation but is rarely used. In latter case,
multiple_sheet=True should be passed along get_data.
. 34 <https://github.com/pyexcel/pyexcel-io/issues/34>
, treat mmap object
as a file content.
. 35 <https://github.com/pyexcel/pyexcel-io/issues/35>_, encoding parameter
take no effect when given along with file content
. use ZIP_DEFALTED to really do the compression

0.3.3


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 31 <https://github.com/pyexcel/pyexcel-io/issues/31>_, support pyinstaller

0.3.2


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 29 <https://github.com/pyexcel/pyexcel-io/issues/29>_, change
skip_empty_rows to False by default

0.3.1


Added
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. updated versions of extra packages

Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 23 <https://github.com/pyexcel/pyexcel-io/issues/23>_, provide helpful
message when old pyexcel plugin exists
. restored previously available diagnosis message for missing libraries

0.3.0


Added
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. lazy loading of plugins. for example, pyexcel-xls is not entirely loaded
until xls format is used at its first attempted reading or writing. Since
it is loaded, it will not be loaded in the second io action.
. pyexcel-xls issue 11 <https://github.com/pyexcel/pyexcel-xls/issues/11>_,
make case-insensitive for file type

0.2.6


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 24 <https://github.com/pyexcel/pyexcel-io/issues/24>__, pass on batch_size

0.2.5


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 26 <https://github.com/pyexcel/pyexcel-io/issues/26>__, performance issue
with getting the number of columns.

0.2.4


Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 23 <https://github.com/pyexcel/pyexcel-io/issues/23>__, Failed to convert
long integer string in python 2 to its actual value

0.2.3


Added
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 21 <https://github.com/pyexcel/pyexcel-io/issues/21>, choose subset from
data base tables for export
. 22 <https://github.com/pyexcel/pyexcel-io/issues/22>
, custom renderer if
given row_renderer as parameter.

0.2.2


Added
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. support pagination. two pairs: start_row, row_limit and start_column,
column_limit help you deal with large files.
. skip_empty_rows=True was introduced. To include empty rows, put it to False.

Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. 20 <https://github.com/pyexcel/pyexcel-io/issues/20>__, pyexcel-io attempts
to parse cell contents of 'infinity' as a float/int, crashes

0.2.1


Added
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. csv format: handle utf-16 encoded csv files. Potentially being able to decode
other formats if correct "encoding" is provided
. csv format: write utf-16 encoded files. Potentially other encoding is also
supported
. support stdin as input stream and stdout as output stream

Updated
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. Attention, user of pyexcel-io! No longer io stream validation is performed
in python 3. The guideline is: io.StringIO for csv, tsv only, otherwise
BytesIO for xlsx, xls, ods. You can use RWManager.get_io to produce a correct
stream type for you.
. 15 <https://github.com/pyexcel/pyexcel-io/issues/15>__, support foreign
django/sql foreign key

0.2.0


Added
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. autoload of pyexcel-io plugins
. auto detect datetime, float and int. Detection can be switched off by
auto_detect_datetime, auto_detect_float, auto_detect_int

pyexcel-xls 0.1.0 -> 0.4.0

0.4.0


Updated


. 15 <https://github.com/pyexcel/pyexcel-xlsx/issues/15>, close file handle
. pyexcel-io plugin interface now updated to use
lml <https://github.com/chfw/lml>
.

0.3.3


Updated


. 18 <https://github.com/pyexcel/pyexcel-xls/issues/18>_, pass on
encoding_override and others to xlrd.

0.3.2


Updated


. 16 <https://github.com/pyexcel/pyexcel-xls/issues/16>_, allow mmap to
be passed as file content

0.3.1


Updated


. 14 <https://github.com/pyexcel/pyexcel-xls/issues/14>_, Python 3.6 -
cannot use LOCALE flag with a str pattern

0.3.0

0.2.3


Updated


. 10 <https://github.com/pyexcel/pyexcel-xls/issues/10>_, To support
generator as member of the incoming two dimensional data

0.2.2


Added


. support pagination. two pairs: start_row, row_limit and start_column,
column_limit help you deal with large files.

0.2.1


Added


. 9 <https://github.com/pyexcel/pyexcel-xls/issues/9>_, skip_hidden_sheets
is added. By default, hidden sheets are skipped when reading all sheets.
Reading sheet by name or by index are not affected.

0.2.0

. xlwt is now used for python 2 implementation while xlwt-future is used for
python 3

pyexcel-xlsx 0.1.0 -> 0.4.0

0.4.0


Updated


. 14 <https://github.com/pyexcel/pyexcel-xlsx/issues/14>, close file
handle
. pyexcel-io plugin interface now updated to use
lml <https://github.com/chfw/lml>
.

0.3.0

. 13 <https://github.com/pyexcel/pyexcel-xlsx/issues/13>_, turn read_only
flag on openpyxl.

0.2.3


Updated


. 12 <https://github.com/pyexcel/pyexcel-xlsx/issues/12>_, remove
UserWarning: Using a coordinate with ws.cell is deprecated.
Use ws[coordinate]

0.2.2


Added


. support pagination. two pairs: start_row, row_limit and start_column, column_limit
help you deal with large files.

0.2.1


Added


. 8 <https://github.com/pyexcel/pyexcel-xlsx/issues/8>__, skip_hidden_sheets is added. By default, hidden sheets are skipped when reading all sheets. Reading sheet by name or by index are not affected.

0.2.0

pyexcel-ods3 0.1.1 -> 0.4.0

0.4.0


Updated


. 14 <https://github.com/pyexcel/pyexcel-xlsx/issues/14>, close file
handle
. pyexcel-io plugin interface now updated to use
lml <https://github.com/chfw/lml>
.

0.3.2


Updated


. issue 8 <https://github.com/pyexcel/pyexcel-ods3/issues/8>_, PT288H00M00S
is valid duration

0.3.1


Added


. Recognize currency type

0.3.0

0.2.2


Updated


. 11 <https://github.com/pyexcel/pyexcel-ods3/issues/11>_, be able to
consume a generator of two dimensional arrays.

0.2.1


Added


. support pagination. two pairs: start_row, row_limit and start_column,
column_limit help you deal with large files.

0.2.0

gunicorn 19.6.0 -> 19.7.1

19.7.1

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

  • fix: continue if SO_REUSEPORT seems to be available but fails (:issue:1480)
  • fix: support non-decimal values for the umask command line option (:issue:1325)

19.7.0

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

  • The previously deprecated gunicorn_django command has been removed.
    Use the :ref:gunicorn-cmd command-line interface instead.
  • The previously deprecated django_settings setting has been removed.
    Use the :ref:raw-env setting instead.
  • The default value of :ref:ssl-version has been changed from
    ssl.PROTOCOL_TLSv1 to ssl.PROTOCOL_SSLv23.
  • fix: initialize the group access list when initgroups is set (:issue:1297)
  • add environment variables to gunicorn access log format (:issue:1291)
  • add --paste-global-conf option (:issue:1304)
  • fix: print access logs to STDOUT (:issue:1184)
  • remove upper limit on max header size config (:issue:1313)
  • fix: print original exception on AppImportError (:issue:1334)
  • use SO_REUSEPORT if available (:issue:1344)
  • fix leak <https://github.com/benoitc/gunicorn/commit/b4c41481e2d5ef127199a4601417a6819053c3fd>_ of duplicate file descriptor for bound sockets.
  • add --reload-engine option, support inotify and other backends (:issue:1368, :issue:1459)
  • fix: reject request with invalid HTTP versions
  • add child_exit callback (:issue:1394)
  • add support for eventlets _AlreadyHandled object (:issue:1406)
  • format boot tracebacks properly with reloader (:issue:1408)
  • refactor socket activation and fd inheritance for better support of SystemD (:issue:1310)
  • fix: o fds are given by default in gunicorn (:issue:1423)
  • add ability to pass settings to GUNICORN_CMD_ARGS environment variable which helps in container world (:issue:1385)
  • fix: catch access denied to pid file (:issue:1091)
  • many additions and improvements to the documentation

Breaking Change
+++++++++++++++

  • Python 2.6.0 is the last supported version

whitenoise 1.0.6 -> 3.3.0

3.3.0


  • Support the new immutable <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-ControlRevalidation_and_reloading>_
    Cache-Control header. This gives better caching behaviour for immutable resources than
    simply setting a large max age.

3.2.3


  • Gracefully handle invalid byte sequences in URLs.
  • Gracefully handle filenames which are too long for the filesystem.
  • Send correct Content-Type for Adobe's crossdomain.xml files.

3.2.2


  • Convert any config values supplied as byte strings to text to avoid
    runtime encoding errors when encountering non-ASCII filenames.

3.2.1


  • Handle non-ASCII URLs correctly when using the wsgi.py integration.
  • Fix exception triggered when a static files "finder" returned a directory
    rather than a file.

3.2


  • Add support for the new-style middleware classes introduced in Django 1.10.
    The same WhiteNoiseMiddleware class can now be used in either the old
    MIDDLEWARE_CLASSES list or the new MIDDLEWARE list.
  • Fixed a bug where incorrect Content-Type headers were being sent on 304 Not
    Modified responses (thanks oppianmatt <https://github.com/oppianmatt>_).
  • Return Vary and Cache-Control headers on 304 responses, as specified by the
    RFC <http://tools.ietf.org/html/rfc7232section-4.1>_.

3.1


  • Add new :any:WHITENOISE_STATIC_PREFIX setting to give flexibility in
    supporting non-standard deployment configurations e.g. serving the
    application somewhere other than the domain root.
  • Fix bytes/unicode bug when running with Django 1.10 on Python 2.7

3.0


.. note:: The latest version of WhiteNoise contains some small breaking changes.
Most users will be able to upgrade without any problems, but some
less-used APIs have been modified:

  • The setting WHITENOISE_GZIP_EXCLUDE_EXTENSIONS has been renamed to
    WHITENOISE_SKIP_COMPRESS_EXTENSIONS.
  • The CLI :ref:compression utility <cli-utility> has moved from python -m whitenoise.gzip
    to python -m whitenoise.compress.
  • The now redundant gzipstatic management command has been removed.
  • WhiteNoise no longer uses the system mimetypes files, so if you are serving
    particularly obscure filetypes you may need to add their mimetypes explicitly
    using the new :any:mimetypes <WHITENOISE_MIMETYPES> setting.
  • Older versions of Django (1.4-1.7) and Python (2.6) are no longer supported.
    If you need support for these platforms you can continue to use WhiteNoise 2.x_.
  • The whitenoise.django.GzipManifestStaticFilesStorage storage backend
    has been moved to
    whitenoise.storage.CompressedManifestStaticFilesStorage. The old
    import path will continue to work for now, but users are encouraged
    to update their code to use the new path.

.. _WhiteNoise 2.x: http://whitenoise.evans.io/en/legacy-2.x/

Simpler, cleaner Django middleware integration
++++++++++++++++++++++++++++++++++++++++++++++

WhiteNoise can now integrate with Django by adding a single line to
MIDDLEWARE_CLASSES without any need to edit wsgi.py. This also means
that WhiteNoise plays nicely with other middleware classes such as
SecurityMiddleware, and that it is fully compatible with the new Channels_
system. See the :ref:updated documentation <django-middleware> for details.

.. _Channels: https://channels.readthedocs.io/

Brotli compression support
++++++++++++++++++++++++++

Brotli_ is the modern, more efficient alternative to gzip for HTTP
compression. To benefit from smaller files and faster page loads, just install
the brotlipy_ library, update your requirements.txt and WhiteNoise
will take care of the rest. See the :ref:documentation <brotli-compression>
for details.

.. _brotli: https://en.wikipedia.org/wiki/Brotli
.. _brotlipy: https://brotlipy.readthedocs.io/

Simpler customisation
+++++++++++++++++++++

It's now possible to add custom headers to WhiteNoise without needing to create
a subclass, using the new :any:add_headers_function <WHITENOISE_ADD_HEADERS_FUNCTION> setting.

Use WhiteNoise in development with Django
+++++++++++++++++++++++++++++++++++++++++

There's now an option to force Django to use WhiteNoise in development, rather
than its own static file handling. This results in more consistent behaviour
between development and production environments and fewer opportunities for
bugs and surprises. See the :ref:documentation <runserver-nostatic> for
details.

Improved mimetype handling
++++++++++++++++++++++++++

WhiteNoise now ships with its own mimetype definitions (based on those shipped
with nginx) instead of relying on the system ones, which can vary between
environments. There is a new :any:mimetypes <WHITENOISE_MIMETYPES>
configuration option which makes it easy to add additional type definitions if
needed.

Thanks
++++++

A big thank-you to Ed Morley <https://github.com/edmorley>_ and Tim Graham <https://github.com/timgraham>_ for their contributions to this release.


2.0.6


  • Rebuild with latest version of wheel to get extras_require support.

2.0.5


  • Add missing argp

@ghost
Copy link

ghost commented Jul 6, 2017

Can one of the admins verify this patch?

@quis
Copy link
Member

quis commented Jul 6, 2017

add to whitelist

@quis
Copy link
Member

quis commented Jul 7, 2017

Tested this locally and had to make one change to get the tests passing:

Rename imports to reflect new names

These were changed in version 0.5.0 of pyexcel, when they changed how plugins are loaded – see:
https://github.com/pyexcel/pyexcel/blob/a12cef0bf4bd4b139b5773c52872f03dee70d80b/CHANGELOG.rst#050---19062017

@leohemsted
Copy link
Contributor

flask has changed two major versions in this, i'd like us to give those changelogs a quick skim at least before merging this

@quis quis merged commit 3d076ef into master Jul 26, 2017
@quis quis deleted the pyup-initial-update branch July 26, 2017 08:43
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.

3 participants