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

wants to merge 12 commits into from


None yet
3 participants
Copy link

commented Jan 22, 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:


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.

lingua 4.11 » 4.12 PyPI | Changelog | Repo
alembic 0.8.9 » 0.8.10 PyPI | Repo | Docs
html5lib 0.9999999 » 0.999999999 PyPI | Changelog | Repo
WebOb 1.7.0 » 1.7.1 PyPI | Changelog | Homepage
colander 1.2 » 1.3.1 PyPI | Changelog | Homepage
python-editor 1.0.1 » 1.0.3 PyPI | Repo
SQLAlchemy 1.1.4 » 1.1.5 PyPI | Homepage
Pillow 3.4.2 » 4.0.0 PyPI | Changelog | Homepage
pyramid 1.7.3 » 1.8 PyPI | Changelog | Homepage
Unidecode 0.4.19 » 0.04.20 PyPI | Changelog | Homepage


lingua 4.11 -> 4.12


  • Improve handling of Chameleon parse errors.
  • Correctly set the context for i18n:attributes in TAL templates.

html5lib 0.9999999 -> 0.999999999


Released on July 15, 2016

  • Fix attribute order going to the tree builder to be document order
    instead of reverse document order(!).


Released on July 14, 2016

  • Added ordereddict as a mandatory dependency on Python 2.6.
  • Added lxml, genshi, datrie, charade, and all
    extras that will do the right thing based on the specific
    interpreter implementation.
  • Now requires the mock package for the testsuite.
  • Cease supporting DATrie under PyPy.
  • Remove PullDOM support, as this hasn't ever been properly
    tested, doesn't entirely work, and as far as I can tell is
    completely unused by anyone.
  • Move testsuite to py.test.
  • Fix 124: move to webencodings for decoding the input byte stream;
    this makes html5lib compliant with the Encoding Standard, and
    introduces a required dependency on webencodings.
  • Cease supporting Python 3.2 (in both CPython and PyPy forms).
  • Fix comments containing double-dash with lxml 3.5 and above.
  • Use scripting disabled by default (as we don't implement
  • Fix 11, avoiding the XSS bug potentially caused by serializer
    allowing attribute values to be escaped out of in old browser versions,
    changing the quote_attr_values option on serializer to take one of
    three values, "always" (the old True value), "legacy" (the new option,
    and the new default), and "spec" (the old False value, and the old
  • Fix 72 by rewriting the sanitizer to apply only to treewalkers
    (instead of the tokenizer); as such, this will require amending all
    callers of it to use it via the treewalker API.
  • Drop support of charade, now that chardet is supported once more.
  • Replace the charset keyword argument on parse and related methods
    with a set of keyword arguments: override_encoding, transport_encoding,
    same_origin_parent_encoding, likely_encoding, and default_encoding.
  • Move filters._base, treebuilder._base, and treewalkers._base to .base
    to clarify their status as public.
  • Get rid of the sanitizer package. Merge sanitizer.sanitize into the
    sanitizer.htmlsanitizer module and move that to saniziter. This means
    anyone who used sanitizer.sanitize or sanitizer.HTMLSanitizer needs no
    code changes.
  • Rename treewalkers.lxmletree to .etree_lxml and
    treewalkers.genshistream to .genshi to have a consistent API.
  • Move a whole load of stuff (inputstream, ihatexml, trie, tokenizer,
    utils) to be underscore prefixed to clarify their status as private.

colander 1.2 -> 1.3.1



  • 1.3 was released without updating the changelog. This release fixes that.



  • Drop Python 2.6 and PyPy3 from the test suite. They are no longer
    supported. See Pylons/colander#263
  • colander.String schema type now supports an optional keyword argument
    allow_empty which, when True, deserializes an empty string to an
    empty string. When False (default), an empty string deserializes to
    colander.null. This allows for a node to be explicitly required, but
    allow an empty ('') value to be provided.
  • Add separator parameter to colander.Invalid.asdict
    (for backward compatibility, default is '; ').
    See Pylons/colander#253
  • Fixed an issue with SchemaNode.clone where it would fail when
    cloning an instance of colander.SequenceSchema due to initializing
    the schema without any children, violating some checks.
    See Pylons/colander#212

Pillow 3.4.2 -> 4.0.0


  • Refactor out postprocessing hack to load_end in PcdImageFile
  • Add center and translate option to Image.rotate. 2328

  • Test: Relax WMF test condition, fixes 2323

  • Allow 0 size images, Fixes 2259, Reverts to pre-3.4 behavior.

  • SGI: Save uncompressed SGI/BW/RGB/RGBA files 2325

  • Depends: Updated pngquant to 2.8.2 2319

  • Test: Added correctness tests for opening SGI images 2324
  • Allow passing a list or tuple of individual frame durations when saving a GIF 2298
  • Unified different GIF optimize conditions 2196
  • Build: Refactor dependency installation 2305
  • Test: Add python 3.6 to travis, tox 2304
  • Test: Fix coveralls coverage for Python+C 2300
  • Remove executable bit and shebang from 2308
    [jwilk, radarhere]
  • PyPy: Buffer interface workaround 2294
  • Test: Switch to Ubuntu Trusty 14.04 on Travis CI 2294
  • Remove vendored version of olefile Python package in favor of upstream 2199
  • Updated comments to use print as a function 2234
  • Set executable flag on, and added shebang line 2282, 2277
    [radarhere, homm]
  • Test: Increase epsilon for FreeType 2.7 as rendering is slightly different. 2286
  • Test: Faster assert_image_similar 2279
  • Removed depreciated internal "stretch" method 2276
  • Removed the handles_eof flag in decode.c 2223
  • Tiff: Fix for writing Tiff to BytesIO using libtiff 2263
  • Doc: Design docs 2269
  • Test: Move tests requiring libtiff to test_file_libtiff 2273
  • Update Maxblock heuristic 2275
  • Fix for 2-bit palette corruption 2274
    [pdknsk, wiredfool]
  • Tiff: Update info.icc_profile when using libtiff reader. 2193
  • Test: Fix bug in test_ifd_rational_save when libtiff is not available 2270
  • ICO: Only save relevant sizes 2267
  • ICO: Allow saving .ico files of 256x256 instead of 255x255 2265
  • Fix TIFFImagePlugin ICC color profile saving. 2087
  • Doc: Improved description of ImageOps.deform resample parameter 2256
  • EMF: support negative bounding box coordinates 2249
  • Close file if opened in WalImageFile 2216
  • Use Image._new() instead of _makeself() 2248
  • SunImagePlugin fixes 2241
  • Use minimal scale for jpeg drafts 2240
  • Updated dependency scripts to use FreeType 2.7, OpenJpeg 2.1.2, WebP 0.5.2 and Tcl/Tk 8.6.6 2235, 2236, 2237, 2290, 2302
  • Fix "invalid escape sequence" bytestring warnings in Python 3.6 2186
  • Removed support for Python 2.6 and Python 3.2 2192
  • Setup: Raise custom exceptions when required/requested dependencies are not found 2213
  • Use a context manager in to ensure file is always closed 2226
  • Fixed bug in saving to fp-objects in Python >= 3.4 2227
  • Use a context manager in ImageFont._load_pilfont() to ensure file is always closed 2232
  • Use generator expressions instead of list comprehension 2225
  • Close file after reading in ImagePalette.load() 2215
  • Changed behaviour of default box argument for paste method to match docs 2211
  • Add support for another BMP bitfield 2221
  • Added missing top-level test main 2222
  • Replaced range(len()) 2197
  • Fix for ImageQt Segfault, fixes 1370 2182
  • Setup: Close file in after finished reading 2208
  • Setup: optionally use pkg-config (when present) to detect dependencies 2074
  • Search for tkinter first in builtins 2210
  • Tests: Replace try/except/fail pattern with TestCase.assertRaises() 2200
  • Tests: Remove unused, open files at top level of tests 2188
  • Replace type() equality checks with isinstance 2184
  • Doc: Move ICO out of the list of read-only file formats 2180
  • Doc: Fix formatting, too-short title underlines and malformed table 2175
  • Fix BytesWarnings 2172
  • Use Integer division to eliminate deprecation warning. 2168
  • Doc: Update compatibility matrix
    [daavve, wiredfool]

pyramid 1.7.3 -> 1.8



  • No major changes from 1.8b1.




  • Added an override option to config.add_translation_dirs to allow
    later calls to place translation directories at a higher priority than
    earlier calls. See Pylons/pyramid#2902

Documentation Changes

  • Improve registry documentation to discuss uses as a component registry
    and as a dictionary. See Pylons/pyramid#2893
  • Fix unittests in wiki2 to work without different dependencies between
    py2 and py3. See Pylons/pyramid#2899
  • Update Windows documentation to track newer Python 3 improvements to the
    installer. See Pylons/pyramid#2900



Backward Incompatibilities

  • Support for the IContextURL interface that was deprecated in Pyramid 1.3
    has been removed. See Pylons/pyramid#2822
  • Following the Pyramid deprecation period (1.6 -> 1.8),
    daemon support for pserve has been removed. This includes removing the
    daemon commands (start, stop, restart, status) as well as the following
    arguments: --daemon, --pid-file, --log-file,
    --monitor-restart, --status, --user, --group,

To run your server as a daemon you should use a process manager instead of

See Pylons/pyramid#2615

  • pcreate is now interactive by default. You will be prompted if a file
    already exists with different content. Previously if there were similar
    files it would silently skip them unless you specified --interactive
    or --overwrite.
    See Pylons/pyramid#2775
  • Removed undocumented argument cachebust_match from
    pyramid.static.static_view. This argument was shipped accidentally
    in Pyramid 1.6. See Pylons/pyramid#2681
  • Change static view to avoid setting the Content-Encoding response header
    to an encoding guessed using Python's mimetypes module. This was causing
    clients to decode the content of gzipped files when downloading them. The
    client would end up with a foo.txt.gz file on disk that was already
    decoded, thus should really be foo.txt. Also, the Content-Encoding
    should only have been used if the client itself broadcast support for the
    encoding via Accept-Encoding request headers.
    See Pylons/pyramid#2810
  • Settings are no longer accessible as attributes on the settings object
    (e.g. This was deprecated in Pyramid 1.2.
    See Pylons/pyramid#2823


  • pcreate learned about --package-name to allow you to create a new
    project in an existing folder with a different package name than the project
    name. See Pylons/pyramid#2783
  • The _get_credentials private method of BasicAuthAuthenticationPolicy
    has been extracted into standalone function extract_http_basic_credentials
    in pyramid.authentication module, this function extracts HTTP Basic
    credentials from a request object, and returns them as a named tuple.
    See Pylons/pyramid#2662
  • Pyramid 1.4 silently dropped a feature of the configurator that has been
    restored. It's again possible for action discriminators to conflict across
    different action orders.
    See Pylons/pyramid#2757
  • pyramid.paster.bootstrap and its sibling pyramid.scripting.prepare
    can now be used as context managers to automatically invoke the closer
    and pop threadlocals off of the stack to prevent memory leaks.
    See Pylons/pyramid#2760
  • Added pyramid.config.Configurator.add_exception_view and the
    pyramid.view.exception_view_config decorator. It is now possible using
    these methods or via the new exception_only=True option to add_view
    to add a view which will only be matched when handling an exception.
    Previously any exception views were also registered for a traversal
    context that inherited from the exception class which prevented any
    exception-only optimizations.
    See Pylons/pyramid#2660
  • Added the exception_only boolean to
    pyramid.interfaces.IViewDeriverInfo which can be used by view derivers
    to determine if they are wrapping a view which only handles exceptions.
    This means that it is no longer necessary to perform request-time checks
    for request.exception to determine if the view is handling an exception
  • the pipeline can be optimized at config-time.
    See Pylons/pyramid#2660
  • pserve should now work with gevent and other workers that need
    to monkeypatch the process, assuming the server and / or the app do so
    as soon as possible before importing the rest of pyramid.
    See Pylons/pyramid#2797
  • Pyramid no longer copies the settings object passed to the
    pyramid.config.Configurator(settings=). The original dict is kept.
    See Pylons/pyramid#2823
  • The csrf trusted origins setting may now be a whitespace-separated list of
    domains. Previously only a python list was allowed. Also, it can now be set
    using the PYRAMID_CSRF_TRUSTED_ORIGINS environment variable similar to
    other settings. See Pylons/pyramid#2823
  • pserve --reload now uses the
    hupper <>
    library to monitor file changes. This comes with many improvements:
  • If the watchdog <>_ package is
    installed then monitoring will be done using inotify instead of
    cpu and disk-intensive polling.
  • The monitor is now a separate process that will not crash and starts up
    before any of your code.
  • The monitor will not restart the process after a crash until a file is
  • The monitor works on windows.
  • You can now trigger a reload manually from a pyramid view or any other
    code via hupper.get_reloader().trigger_reload(). Kind of neat.
  • You can trigger a reload by issuing a SIGHUP to the monitor process.

See Pylons/pyramid#2805

  • A new [pserve] section is supported in your config files with a
    watch_files key that can configure pserve --reload to monitor custom
    file paths. See Pylons/pyramid#2827
  • Allow streaming responses to be made from subclasses of
    pyramid.httpexceptions.HTTPException. Previously the response would
    be unrolled while testing for a body, making it impossible to stream
    a response.
    See Pylons/pyramid#2863
  • Update starter, alchemy and zodb scaffolds to support IPv6 by using the
    new listen directives in waitress.
    See Pylons/pyramid#2853
  • All p* scripts now use argparse instead of optparse. This improves their
    --help output as well as enabling nicer documentation of their options.
    See Pylons/pyramid#2864
  • Any deferred configuration action registered via config.action may now
    depend on threadlocal state, such as asset overrides, being active when
    the action is executed.
    See Pylons/pyramid#2873
  • Asset specifications for directories passed to
    config.add_translation_dirs now support overriding the entire asset
    specification, including the folder name. Previously only the package name
    was supported and the folder would always need to have the same name.
    See Pylons/pyramid#2873
  • config.begin() will propagate the current threadlocal request through
    as long as the registry is the same. For example:

.. code-block:: python

request = Request.blank(...)
config.begin(request)   pushes a request
config.begin()          propagates the previous request through unchanged
assert get_current_request() is request

See Pylons/pyramid#2873

Bug Fixes

  • Fixed bug in proutes such that it now shows the correct view when a
    class and attr is involved.
    See: Pylons/pyramid#2687
  • Fix a FutureWarning in Python 3.5 when using re.split on the
    format setting to the proutes script.
    See Pylons/pyramid#2714
  • Fix a RuntimeWarning emitted by WebOb when using arbitrary objects
    as the userid in the AuthTktAuthenticationPolicy. This is now caught
    by the policy and the object is serialized as a base64 string to avoid
    the cryptic warning. Since the userid will be read back as a string on
    subsequent requests a more useful warning is emitted encouraging you to
    use a primitive type instead.
    See Pylons/pyramid#2715
  • Pyramid 1.6 introduced the ability for an action to invoke another action.
    There was a bug in the way that config.add_view would interact with
    custom view derivers introduced in Pyramid 1.7 because the view's
    discriminator cannot be computed until view derivers and view predicates
    have been created in earlier orders. Invoking an action from another action
    would trigger an unrolling of the pipeline and would compute discriminators
    before they were ready. The new behavior respects the order of the action
    and ensures the discriminators are not computed until dependent actions
    from previous orders have executed.
    See Pylons/pyramid#2757
  • Fix bug in i18n where the default domain would always use the Germanic plural
    style, even if a different plural function is defined in the relevant
    messages file. See Pylons/pyramid#2859
  • The config.override_asset method now occurs during
    pyramid.config.PHASE1_CONFIG such that it is ordered to execute before
    any calls to config.add_translation_dirs.
    See Pylons/pyramid#2873


  • The pcreate script and related scaffolds have been deprecated in favor
    of the popular
    cookiecutter <>_ project.

All of Pyramid's official scaffolds as well as the tutorials have been
ported to cookiecutters:

  • pyramid-cookiecutter-starter <>_
  • pyramid-cookiecutter-alchemy <>_
  • pyramid-cookiecutter-zodb <>_

See Pylons/pyramid#2780

Documentation Changes

  • Add pyramid_nacl_session <>_
    to session factories. See Pylons/pyramid#2791
  • Update HACKING.txt from stale branch that was never merged to master.
    See Pylons/pyramid#2782
  • Fix an inconsistency in the documentation between view predicates and
    route predicates and highlight the differences in their APIs.
    See Pylons/pyramid#2764
  • Clarify a possible misuse of the headers kwarg to subclasses of
    pyramid.httpexceptions.HTTPException in which more appropriate
    kwargs from the parent class pyramid.response.Response should be
    used instead. See Pylons/pyramid#2750
  • The SQLAlchemy + URL Dispatch + Jinja2 (wiki2) and
    ZODB + Traversal + Chameleon (wiki) tutorials have been updated to
    utilize the new cookiecutters and drop support for the pcreate

See Pylons/pyramid#2881 and

  • Quick Tour updated to use cookiecutters instead of pcreate and scaffolds.
    See Pylons/pyramid#2888

Unidecode 0.4.19 -> 0.04.20


  • Fixed transliteration of circled Latin letters and numbers
    (thanks to Krzysztof Jurewicz).
  • Add square unit symbols.
  • Add Latin variants in U+20xx and U+21xx pages.
    in U+1F1xx page.
  • Add missing vulgar fractions and a/c, a/s, c/o, c/u symbols.
  • Add universal Wheel release (thanks to Adam Chainz).

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! 🤖


This comment has been minimized.

Copy link

commented Jan 22, 2017

Current coverage is 93.36% (diff: 100%)

Merging #522 into master will not change coverage

@@             master       #522   diff @@
  Files            34         34          
  Lines          3483       3483          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
  Hits           3252       3252          
  Misses          231        231          
  Partials          0          0          

Powered by Codecov. Last update 2d1e899...ff78602

1 similar comment

This comment has been minimized.

Copy link

commented Jan 22, 2017

Current coverage is 93.36% (diff: 100%)

Merging #522 into master will not change coverage

@@             master       #522   diff @@
  Files            34         34          
  Lines          3483       3483          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
  Hits           3252       3252          
  Misses          231        231          
  Partials          0          0          

Powered by Codecov. Last update 2d1e899...ff78602

disko added some commits Jan 23, 2017

@disko disko closed this Sep 26, 2017

@disko disko deleted the pyup-initial-update branch Sep 26, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.