{"action":"closed","number":5,"pull_request":{"url":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/5","id":138914894,"html_url":"https://github.com/narnikgamarnikus/gglobal/pull/5","diff_url":"https://github.com/narnikgamarnikus/gglobal/pull/5.diff","patch_url":"https://github.com/narnikgamarnikus/gglobal/pull/5.patch","issue_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/5","number":5,"state":"closed","locked":false,"title":"Scheduled monthly dependency update for September","user":{"login":"pyup-bot","id":16239342,"avatar_url":"https://avatars0.githubusercontent.com/u/16239342?v=4","gravatar_id":"","url":"https://api.github.com/users/pyup-bot","html_url":"https://github.com/pyup-bot","followers_url":"https://api.github.com/users/pyup-bot/followers","following_url":"https://api.github.com/users/pyup-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-bot/orgs","repos_url":"https://api.github.com/users/pyup-bot/repos","events_url":"https://api.github.com/users/pyup-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-bot/received_events","type":"User","site_admin":false},"body":"\n\n\n## Updates\nHere'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.\n<table align=\"center\">\n\n<tr>\n<td><b>Pillow</b></td>\n<td align=\"center\">3.1.0</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">4.2.1</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/pillow\">PyPI</a> | <a href=\"https://pyup.io/changelogs/pillow/\">Changelog</a> | <a href=\"https://python-pillow.org\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>Django</b></td>\n<td align=\"center\">1.10</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">1.11.4</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/django\">PyPI</a> | <a href=\"https://pyup.io/changelogs/django/\">Changelog</a> | <a href=\"https://www.djangoproject.com/\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>mistune</b></td>\n<td align=\"center\">0.7.1</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">0.7.4</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/mistune\">PyPI</a> | <a href=\"https://pyup.io/changelogs/mistune/\">Changelog</a> | <a href=\"https://github.com/lepture/mistune\">Repo</a> \n\n</td>\n\n</tr>\n</table>\n\n\n\n## Changelogs\n\n\n### Pillow 3.1.0 -> 4.2.1\n\n>### 4.2.1\n\n>------------------\n\n>- CI: Fix version specification and test on CI for PyPy/Windows 2608\n>  [wiredfool]\n\n\n\n>### 4.2.0\n\n>------------------\n\n>- Doc: Clarified Image.save:append_images documentation 2604\n>  [radarhere]\n\n>- CI: Amazon Linux and Centos6 docker images added to TravisCI 2585\n>  [wiredfool]\n>  \n>- Image.alpha_composite added 2595\n>  [wiredfool]\n>  \n>- Complex Text Support 2576\n>  [ShamsaHamed, Fahad-Alsaidi, wiredfool]\n>  \n>- Added threshold parameter to ImageDraw.floodfill 2599\n>  [nediamond]\n\n>- Added dBATCH parameter to ghostscript command 2588\n>  [radarhere]\n\n>- JPEG: Adjust buffer size when icc_profile &gt; MAXBLOCK 2596\n>  [Darou]\n\n>- Specify Pillow Version in one place 2517\n>  [wiredfool]\n>  \n>- CI: Change the owner of the TRAVIS_BUILD_DIR, fixing broken docker runs 2587\n>  [wiredfool]\n\n>- Fix truncated PNG loading for some images, Fix memory leak on truncated PNG images. 2541, 2598\n>  [homm]\n>  \n>- Add decompression bomb check to Image.crop 2410\n>  [wiredfool]\n\n>- ImageFile: Ensure that the `err_code` variable is initialized in case of exception. 2363\n>  [alexkiro]\n>  \n>- Tiff: Support append_images for saving multipage TIFFs 2406\n>  [blochl]\n\n>- Doc: Clarify that draft is only implemented for JPEG and PCD 2409\n>  [wiredfool]\n\n>- Test: MicImagePlugin 2447\n>  [hugovk]\n\n>- Use round() instead of floor() to eliminate zero coefficients in resample 2558\n>  [homm]\n\n>- Remove deprecated code 2549\n>  [hugovk]\n>  \n>- Added append_images to PDF saving 2526\n>  [radarhere]\n> \n>- Remove unused function core image function new_array 2548\n>  [hugovk]\n\n>- Remove unnecessary calls to dict.keys() 2551\n>  [jdufresne]\n>  \n>- Add more ImageDraw.py tests and remove unused Draw.c code 2533\n>  [hugovk]\n\n>- Test: More tests for ImageMorph 2554\n>  [hugovk]\n\n>- Test: McIDAS area file 2552\n>  [radarhere]\n\n>- Update Feature Detection 2520\n>  [wiredfool]\n\n>- CI: Update pypy on TravisCI 2573\n>  [hugovk]\n\n>- ImageMorph: Fix wrong expected size of MRLs read from disk 2561\n>  [dov]\n\n>- Docs: Update install docs for FreeBSD 2546\n>  [wiredfool]\n\n>- Build: Ignore OpenJpeg 1.5 on FreeBSD 2544\n>  [melvyn-sopacua]\n\n>- Remove &#39;not yet implemented&#39; methods from PIL 1.1.4 2538\n>  [hugovk]\n>  \n>- Dependencies: Update FreeType to 2.8, LibTIFF to 4.0.8 and libimagequant to 2.9.1 2535 2537 2540\n>  [radarhere]\n\n>- Raise TypeError and not also UnboundLocalError in ImageFile.Parser() 2525\n>  [joshblum]\n\n>- Test: Use Codecov for coverage 2528\n>  [hugovk]\n\n>- Use PNG for Image.show() 2527\n>  [HinTak, wiredfool]\n\n>- Remove WITH_DEBUG compilation flag 2522\n>  [wiredfool]\n\n>- Fix return value on parameter parse error in _webp.c 2521\n>  [adw1n]\n\n>- Set executable flag on scripts with shebang line 2295\n>  [radarhere]\n\n>- Flake8 2460\n>  [radarhere]\n\n>- Doc: Release Process Changes 2516\n>  [wiredfool]\n\n>- CI: Added region for s3 deployment on appveyor 2515\n>  [wiredfool]\n\n>- Doc: Updated references to point to existing files 2507\n>  [radarhere]\n\n>- Return copy on Image crop if crop dimensions match the image 2471\n>  [radarhere]\n\n>- Test: Optimize CI speed 2464, 2466\n>  [hugovk]\n\n\n\n>### 4.1.1\n\n>------------------\n\n>- Undef PySlice_GetIndicesEx, see https://bugs.python.org/issue29943 2493\n>  [cgohlke]\n\n>- Fix for file with DPI in EXIF but not metadata, and XResolution is an int rather than tuple 2484\n>  [hugovk]\n\n>- Docs: Removed broken download counter badge 2487\n>  [hugovk]\n\n>- Docs: Fixed rst syntax error 2477\n>  [thebjorn]\n\n\n\n>### 4.1.0\n\n>------------------\n\n>- Close files after loading if possible 2330\n>  [homm, wiredfool]\n\n>- Fix Image Access to be reloadable when embedding the Python interpreter 2296\n>  [wiredfool, cgohlke]\n\n>- Fetch DPI from EXIF if not specified in JPEG header 2449, 2472\n>  [hugovk]\n\n>- Removed winbuild checksum verification 2468\n>  [radarhere]\n\n>- Git: Set ContainerIO test file as binary 2469\n>  [cgohlke]\n\n>- Remove superfluous import of FixTk 2455\n>  [cgohlke)\n\n>- Fix import of tkinter/Tkinter 2456\n>  [cgohlke)\n\n>- Pure Python Decoders, including Python decoder to fix for MSP images 1938\n>  [wiredfool, hugovk]\n\n>- Reorganized GifImagePlugin, fixes 2314.  2374\n>  [radarhere, wiredfool]\n\n>- Doc: Reordered operating systems in Compatibility Matrix 2436\n>  [radarhere]\n\n>- Test: Additional tests for BurfStub, Eps, Container, GribStub, IPTC, Wmf, XVThumb, ImageDraw, ImageMorph ImageShow 2425\n>  [radarhere]\n\n>- Health fixes 2437\n>  [radarhere]\n\n>- Test: Correctness tests ContainerIO, XVThumbImagePlugin, BufrStubImagePlugin, GribStubImagePlugin, FitsStubImagePlugin, Hdf5StubImagePlugin, PixarImageFile, PsdImageFile 2443, 2442, 2441, 2440, 2431, 2430, 2428, 2427\n>  [hugovk]\n\n>- Remove unused imports 1822\n>  [radarhere]\n\n>- Replaced KeyError catch with dictionary get method 2424\n>  [radarhere]\n\n>- Test: Removed unrunnable code in test_image_toqimage 2415\n>  [hugovk]\n\n>- Removed use of spaces in TIFF kwargs names, deprecated in 2.7 1390\n>  [radarhere]\n\n>- Removed deprecated ImageDraw setink, setfill, setfont methods 2220\n>  [jdufresne]\n\n>- Send unwanted subprocess output to /dev/null 2253\n>  [jdufresne]\n\n>- Fix division by zero when creating 0x0 image from numpy array 2419\n>  [hugovk]\n\n>- Test: Added matrix convert tests 2381\n>  [hugovk]\n\n>- Replaced broken URL to partners.adobe.com 2413\n>  [radarhere]\n\n>- Removed unused private functions in setup.py and build_dep.py 2414\n>  [radarhere]\n\n>- Test: Fixed Qt tests for QT5 and saving 1 bit PNG 2394\n>  [wiredfool]\n\n>- Test: docker builds for Arch and Debian Stretch 2394\n>  [wiredfool]\n\n>- Updated libwebp to 0.6.0 on appveyor 2395\n>  [radarhere]\n\n>- More explicit error message when saving to a file with invalid extension 2399\n>  [ces42]\n\n>- Docs: Update some http urls to https 2403\n>  [hugovk]\n\n>- Preserve aux/alpha channels when performing Imagecms transforms 2355\n>  [gunjambi]\n\n>- Test linear and radial gradient effects 2382\n>  [hugovk]\n\n>- Test ImageDraw.Outline and and ImageDraw.Shape 2389\n>  [hugovk]\n\n>- Added PySide to ImageQt documentation 2392\n>  [radarhere]\n\n>- BUG: Empty image mode no longer causes a crash 2380\n>  [evalapply]\n\n>- Exclude .travis and contents from manifest 2386\n>  [radarhere]\n\n>- Remove &#39;MIT-like&#39; from license 2145\n>  [wiredfool]\n\n>- Tests: Add tests for several Image operations 2379\n>  [radarhere]\n\n>- PNG: Moved iCCP chunk before PLTE chunk when saving as PNG, restricted chunks known value/ordering 2347\n>  [radarhere]\n\n>- Default to inch-interpretation for missing ResolutionUnit in TiffImagePlugin 2365\n>  [lambdafu]\n\n>- Bug: Fixed segfault when using ImagingTk on pypy Issue 2376, 2359.\n>  [wiredfool]\n\n>- Bug: Fixed Integer overflow using ImagingTk on 32 bit platforms 2359\n>  [wiredfool, QuLogic]\n\n>- Tests: Added docker images for testing alternate platforms. See also https://github.com/python-pillow/docker-images. 2368\n>  [wiredfool]\n\n>- Removed PIL 1.0 era TK readme that concerns Windows 95/NT 2360\n>  [wiredfool]\n\n>- Prevent `nose -v` printing docstrings 2369\n>  [hugovk]\n\n>- Replaced absolute PIL imports with relative imports 2349\n>  [radarhere]\n\n>- Added context managers for file handling 2307\n>  [radarhere]\n\n>- Expose registered file extensions in Image 2343\n>  [iggomez, radarhere]\n\n>- Make mode descriptor cache initialization thread-safe. 2351\n>  [gunjambi]\n\n>- Updated Windows test dependencies: Freetype 2.7.1, zlib 1.2.11 2331, 2332, 2357\n>  [radarhere]\n\n>- Followed upstream pngquant packaging reorg to libimagquant 2354\n>  [radarhere]\n\n>- Fix invalid string escapes 2352\n>  [hugovk]\n\n>- Add test for crop operation with no argument 2333\n>  [radarhere]\n\n\n\n>### 4.0.0\n\n>------------------\n\n>- Refactor out postprocessing hack to load_end in PcdImageFile\n>  [wiredfool]\n\n>- Add center and translate option to Image.rotate. 2328\n>  [lambdafu]\n\n>- Test: Relax WMF test condition, fixes 2323\n>  [wiredfool]\n\n>- Allow 0 size images, Fixes 2259, Reverts to pre-3.4 behavior.\n>  [wiredfool]\n\n>- SGI: Save uncompressed SGI/BW/RGB/RGBA files 2325\n>  [jbltx]\n\n>- Depends: Updated pngquant to 2.8.2 2319\n>  [radarhere]\n\n>- Test: Added correctness tests for opening SGI images 2324\n>  [wiredfool]\n\n>- Allow passing a list or tuple of individual frame durations when saving a GIF 2298\n>  [Xdynix]\n\n>- Unified different GIF optimize conditions 2196\n>  [radarhere]\n\n>- Build: Refactor dependency installation 2305\n>  [hugovk]\n\n>- Test: Add python 3.6 to travis, tox 2304\n>  [hugovk]\n\n>- Test: Fix coveralls coverage for Python+C 2300\n>  [hugovk]\n\n>- Remove executable bit and shebang from OleFileIO.py 2308\n>  [jwilk, radarhere]\n\n>- PyPy: Buffer interface workaround 2294\n>  [wiredfool]\n\n>- Test: Switch to Ubuntu Trusty 14.04 on Travis CI 2294\n\n>- Remove vendored version of olefile Python package in favor of upstream 2199\n>  [jdufresne]\n\n>- Updated comments to use print as a function 2234\n>  [radarhere]\n\n>- Set executable flag on selftest.py, setup.py and added shebang line 2282, 2277\n>  [radarhere, homm]\n\n>- Test: Increase epsilon for FreeType 2.7 as rendering is slightly different. 2286\n>  [hugovk]\n\n>- Test: Faster assert_image_similar 2279\n>  [homm]\n\n>- Removed depreciated internal &quot;stretch&quot; method 2276\n>  [homm]\n\n>- Removed the handles_eof flag in decode.c 2223\n>  [wiredfool]\n\n>- Tiff: Fix for writing Tiff to BytesIO using libtiff 2263\n>  [wiredfool]\n\n>- Doc: Design docs 2269\n>  [wiredfool]\n\n>- Test: Move tests requiring libtiff to test_file_libtiff 2273\n>  [wiredfool]\n\n>- Update Maxblock heuristic 2275\n>  [wiredfool]\n\n>- Fix for 2-bit palette corruption 2274\n>  [pdknsk, wiredfool]\n\n>- Tiff: Update info.icc_profile when using libtiff reader. 2193\n>  [lambdafu]\n\n>- Test: Fix bug in test_ifd_rational_save when libtiff is not available 2270\n>  [ChristopherHogan]\n\n>- ICO: Only save relevant sizes 2267\n>  [hugovk]\n\n>- ICO: Allow saving .ico files of 256x256 instead of 255x255 2265\n>  [hugovk]\n\n>- Fix TIFFImagePlugin ICC color profile saving. 2087\n>  [cskau]\n\n>- Doc: Improved description of ImageOps.deform resample parameter 2256\n>  [radarhere]\n\n>- EMF: support negative bounding box coordinates 2249\n>  [glexey]\n\n>- Close file if opened in WalImageFile 2216\n>  [radarhere]\n\n>- Use Image._new() instead of _makeself() 2248\n>  [homm]\n\n>- SunImagePlugin fixes 2241\n>  [wiredfool]\n\n>- Use minimal scale for jpeg drafts 2240\n>  [homm]\n\n>- 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\n>  [radarhere]\n\n>- Fix &quot;invalid escape sequence&quot; bytestring warnings in Python 3.6 2186\n>  [timgraham]\n\n>- Removed support for Python 2.6 and Python 3.2 2192\n>  [jdufresne]\n\n>- Setup: Raise custom exceptions when required/requested dependencies are not found 2213\n>  [wiredfool]\n\n>- Use a context manager in FontFile.save() to ensure file is always closed 2226\n>  [jdufresne]\n\n>- Fixed bug in saving to fp-objects in Python &gt;= 3.4 2227\n>  [radarhere]\n\n>- Use a context manager in ImageFont._load_pilfont() to ensure file is always closed 2232\n>  [jdufresne]\n\n>- Use generator expressions instead of list comprehension 2225\n>  [jdufresne]\n\n>- Close file after reading in ImagePalette.load() 2215\n>  [jdufresne]\n\n>- Changed behaviour of default box argument for paste method to match docs 2211\n>  [radarhere]\n\n>- Add support for another BMP bitfield 2221\n>  [jmerdich]\n\n>- Added missing top-level test __main__ 2222\n>  [radarhere]\n\n>- Replaced range(len()) 2197\n>  [radarhere]\n\n>- Fix for ImageQt Segfault, fixes 1370 2182\n>  [wiredfool]\n\n>- Setup: Close file in setup.py after finished reading 2208\n>  [jdufresne]\n\n>- Setup: optionally use pkg-config (when present) to detect dependencies 2074\n>  [garbas]\n\n>- Search for tkinter first in builtins 2210\n>  [matthew-brett]\n\n>- Tests: Replace try/except/fail pattern with TestCase.assertRaises() 2200\n>  [jdufresne]\n\n>- Tests: Remove unused, open files at top level of tests 2188\n>  [jdufresne]\n\n>- Replace type() equality checks with isinstance 2184\n>  [jdufresne]\n\n>- Doc: Move ICO out of the list of read-only file formats 2180\n>  [alexwlchan]\n\n>- Doc: Fix formatting, too-short title underlines and malformed table 2175\n>  [hugovk]\n\n>- Fix BytesWarnings 2172\n>  [jdufresne]\n\n>- Use Integer division to eliminate deprecation warning. 2168\n>  [mastermatt]\n\n>- Doc: Update compatibility matrix\n>  [daavve, wiredfool]\n\n\n\n\n>### 3.4.2\n\n>------------------\n\n>- Fix Resample coefficient calculation 2162\n>  [homm]\n\n\n\n\n>### 3.4.1\n\n>------------------\n\n>- Allow lists as arguments for Image.new() 2149\n>  [homm]\n\n>- Fix fix for map.c overflow 2151  (also in 3.3.3)\n>  [wiredfool]\n\n\n\n>### 3.4.0\n\n>------------------\n\n>- Removed Image.core.open_ppm, added negative image size checks in Image.py. 2146\n>  [wiredfool]\n\n>- Windows build: fetch dependencies from pillow-depends 2095\n>  [hugovk]\n\n>- Add TIFF save_all writer. 2140\n>  [lambdafu, vashek]\n\n>- Move libtiff fd duplication to _load_libtiff 2141\n>  [sekrause]\n\n>- Speed up GIF save optimization step, fixes 2093. 2133\n>  [wiredfool]\n\n>- Fix for ImageCms Segfault, Issue 2037. 2131\n>  [wiredfool]\n\n>- Make Image.crop an immediate operation, not lazy. 2138\n>  [wiredfool]\n\n>- Skip empty values in ImageFileDirectory 2024\n>  [homm]\n\n>- Force reloading palette when using mmap in ImageFile. 2139\n>  [lambdafu]\n\n>- Fix &quot;invalid escape sequence&quot; warning in Python 3.6 2136\n>  [timgraham]\n\n>- Update documentation about drafts 2137\n>  [radarhere]\n\n>- Converted documentation parameter format, comments to docstrings 2021\n>  [radarhere]\n\n>- Fixed typos 2128 2142\n>  [radarhere]\n\n>- Renamed references to OS X to macOS 2125 2130\n>  [radarhere]\n\n>- Use truth value when checking for progressive and optimize option on save 2115, 2129\n>  [radarhere]\n\n>- Convert DPI to ints when saving as JPEG 2102\n>  [radarhere]\n\n>- Added append_images parameter to GIF saving 2103\n>  [radarhere]\n\n>- Speedup paste with masks up to 80% 2015\n>  [homm]\n\n>- Rewrite DDS decoders in C, add DXT3 and BC7 decoders 2068\n>  [Mischanix]\n\n>- Fix PyArg_ParseTuple format in getink() 2070\n>  [arjennienhuis]\n\n>- Fix saving originally missing TIFF tags. 2111\n>  [anntzer]\n\n>- Allow pathlib.Path in Image.open on Python 2.7 2110\n>  [patricksnape]\n\n>- Use modern base64 interface over deprecated 2121\n>  [hugovk]\n\n>- ImageColor.getrgb hexadecimal RGBA 2114\n>  [homm]\n\n>- Test fix for bigendian machines 2092\n>  [wiredfool]\n\n>- Resampling lookups, trailing empty coefficients, precision 2008\n>  [homm]\n\n>- Add (un)packing between RGBA and BGRa 2057\n>  [arjennienhuis]\n\n>- Added return for J2k (and fpx) Load to return a pixel access object 2061\n>  [wiredfool]\n\n>- Skip failing numpy tests on Pypy &lt;= 5.3.1 2090\n>  [arjennienhuis]\n\n>- Show warning when trying to save RGBA image as JPEG 2010\n>  [homm]\n\n>- Respect pixel centers during transform 2022\n>  [homm]\n\n>- TOC for supported file formats 2056\n>  [polarize]\n\n>- Fix conversion of bit images to numpy arrays Fixes 350, 2058\n>  [matthew-brett]\n\n>- Add ImageOps.scale to expand or contract a PIL image by a factor 2011\n>  [vlmath]\n\n>- Flake8 fixes 2050\n>  [hugovk]\n\n>- Updated freetype to 2.6.5 on Appveyor builds 2035\n>  [radarhere]\n\n>- PCX encoder fixes 2023, pr 2041\n>  [homm]\n\n>- Docs: Windows console prompts are &gt; 2031\n>  [techtonik]\n\n>- Expose Pillow package version as PIL.__version__ 2027\n>  [techtonik]\n\n>- Add Box and Hamming filters for resampling 1959\n>  [homm]\n\n>- Retain a reference to core image object in PyAccess 2009\n>  [homm]\n\n\n\n>### 3.3.3\n\n>------------------\n\n>- Fix fix for map.c overflow 2151\n>  [wiredfool]\n\n\n\n>### 3.3.2\n\n>------------------\n\n>- Fix negative image sizes in Storage.c 2105\n>  [wiredfool]\n\n>- Fix integer overflow in map.c 2105\n>  [wiredfool]\n\n\n\n>### 3.3.1\n\n>------------------\n\n>- Fix C90 compilation error for Tcl / Tk rewrite 2033\n>  [matthew-brett]\n\n>- Fix image loading when rotating by 0 deg 2052\n>  [homm]\n\n\n\n>### 3.3.0\n\n>------------------\n\n>- Fixed enums for Resolution Unit and Predictor in TiffTags.py 1998\n>  [wiredfool]\n\n>- Fix issue converting P mode to LA 1986\n>  [didrix]\n\n>- Moved test_j2k_overflow to check_j2k_overflow, prevent DOS of our 32bit testing machines 1995\n>  [wiredfool]\n\n>- Skip CRC checks in PNG files when LOAD_TRUNCATED_IMAGES is enabled 1991\n>  [kkopachev]\n\n>- Added CMYK mode for opening EPS files 1826\n>  [radarhere]\n\n>- Docs: OSX build instruction clarification 1994\n>  [wiredfool]\n\n>- Docs: Filter comparison table 1993\n>  [homm]\n\n>- Removal of pthread based Incremental.c, new interface for file decoders/encoders to access the python file. Fixes assorted J2k Hangs. 1934\n>  [wiredfool]\n\n>- Skip unnecessary passes when resizing 1954\n>  [homm]\n\n>- Removed duplicate code in ImagePalette 1832\n>  [radarhere]\n\n>- test_imagecms: Reduce precision of extended info due to 32 bit machine precision 1990\n>  [AbdealiJK]\n\n>- Binary Tiff Metadata/ICC profile. 1988\n>  [wiredfool]\n\n>- Ignore large text blocks in PNG if LOAD_TRUNCATED_IMAGES is enabled 1970\n>  [homm]\n\n>- Replace index = index+1 in docs with +=1\n>  [cclauss]\n\n>- Skip extra 0xff00 in jpeg 1977\n>  [kkopachev]\n\n>- Use bytearray for palette mutable storage 1985\n>  [radarhere, wiredfool]\n\n>- Added additional uint modes for Image.fromarray, more extensive tests of fromarray 1984\n>  [mairsbw, wiredfool]\n\n>- Fix for program importing PyQt4 when PyQt5 also installed 1942\n>  [hugovk]\n\n>- Changed depends/install_*.sh urls to point to github pillow-depends repo 1983\n>  [wiredfool]\n\n>- Allow ICC profile from `encoderinfo` while saving PNGs 1909\n>  [homm]\n\n>- Fix integer overflow on ILP32 systems (32-bit Linux). 1975\n>  [lambdafu]\n\n>- Change function declaration to match Tcl_CmdProc type 1966\n>  [homm]\n\n>- Integer overflow checks on all calls to *alloc 1781\n>  [wiredfool]\n\n>- Change equals method on Image so it short circuits 1967\n>  [mattBoros]\n\n>- Runtime loading of TCL/TK libraries, eliminating build time dependency. 1932\n>  [matthew-brett]\n\n>- Cleanup of transform methods 1941\n>  [homm]\n\n>- Fix &quot;Fatal Python error: UNREF invalid object&quot; in debug builds 1936\n>  [wiredfool]\n\n>- Setup fixes for Alpine linux 1937\n>  [wiredfool]\n\n>- Split resample into horizontal + vertical passes 1933\n>  [homm]\n\n>- Box blur with premultiplied alpha 1914\n>  [homm]\n\n>- Add libimagequant support in quantize() 1889\n>  [rr-]\n\n>- Added internal Premultiplied luminosity (La) mode 1912\n>  [homm]\n\n>- Fixed point integer resample 1881\n>  [homm]\n\n>- Removed docs/BUILDME script 1924\n>  [radarhere]\n\n>- Moved comments to docstrings  1926\n>  [hugovk]\n\n>- Include Python.h before wchar.h so _GNU_SOURCE is set consistently 1906\n>  [hugovk]\n\n>- Updated example decoder in documentation 1899\n>  [radarhere]\n\n>- Added support for GIF comment extension 1896\n>  [radarhere]\n\n>- Removed support for pre- 1.5.2 list form of Image info in Image.new 1897\n>  [radarhere]\n\n>- Fix typos in TIFF tags 1918\n>  [radarhere]\n\n>- Skip tests that require libtiff if it is not installed 1893 (fixes 1866)\n>  [wiredfool]\n\n>- Skip test when icc profile is not available, fixes 1887\n>  [doko42]\n\n>- Make deprecated functions raise NotImplementedError instead of Exception. 1862, 1890\n>  [daniel-leicht, radarhere]\n\n>- Replaced os.system with subprocess.call in setup.py 1879\n>  [radarhere]\n\n>- Corrected Image show documentation 1886\n>  [radarhere]\n\n>- Added check for executable permissions to ImageShow 1880\n>  [radarhere]\n\n>- Fixed tutorial code and added explanation 1877\n>  [radarhere]\n\n>- Added OS X support for ImageGrab grabclipboard 1837\n>  [radarhere]\n\n>- Combined duplicate code in ImageTk 1856\n>  [radarhere]\n\n>- Added --disable-platform-guessing option to setup.py build extension 1861\n>  [angeloc]\n\n>- Fixed loading Transparent PNGs with a transparent black color 1840\n>  [olt]\n\n>- Add support for LA mode in Image.fromarray 1865\n>  [pierriko]\n\n>- Make ImageFile load images in read-only mode 1864\n>  [hdante]\n\n>- Added _accept hook for XVThumbImagePlugin 1853\n>  [radarhere]\n\n>- Test TIFF with LZW compression 1855, TGA RLE file 1854\n>  [hugovk]\n\n>- Improved SpiderImagePlugin help text 1863\n>  [radarhere]\n\n>- Updated Sphinx project description 1870\n>  [radarhere]\n\n>- Remove support for Python 3.0 from _imaging.c 1851\n>  [radarhere]\n\n>- Jpeg qtables are unsigned chars 1814, 1921\n>  [thebostik]\n\n>- Added additional EXIF tags 1841, TIFF Tags 1821\n>  [radarhere]\n\n>- Changed documentation to refer to ImageSequence Iterator 1833\n>  [radarhere]\n\n>- Fix Fedora prerequisites in installation docs, depends script 1842\n>  [living180]\n\n>- Added _accept hook for PixarImagePlugin 1843\n>  [radarhere]\n\n>- Removed outdated scanner classifier 1823\n>  [radarhere]\n\n>- Combined identical error messages in _imaging 1825\n>  [radarhere]\n\n>- Added debug option for setup.py to trace header and library finding 1790\n>  [wiredfool]\n\n>- Fix doc building on travis 1820, 1844\n>  [wiredfool]\n\n>- Fix for DIB/BMP images 1813, 1847\n>  [wiredfool]\n\n>- Add PixarImagePlugin file extension 1809\n>  [radarhere]\n\n>- Catch struct.errors when verifying png files 1805\n>  [wiredfool]\n\n>- SpiderImagePlugin: raise an error when seeking in a non-stack file 1794\n>  [radarhere, jmichalon]\n\n>- Added support for 2/4 bpp Tiff grayscale images 1789\n>  [zwhfly]\n\n>- Removed unused variable from selftest 1788\n>  [radarhere]\n\n>- Added warning for as_dict method (deprecated in 3.0.0) 1799\n>  [radarhere]\n\n>- Removed powf support for older Python versions 1784\n>  [radarhere]\n\n>- Health fixes 1625 1903\n>  [radarhere]\n\n\n\n>### 3.2.0\n\n>------------------\n\n>- Added install docs for Fedora 23 and FreeBSD 1729, 1739, 1792\n>  [koobs, zandermartin, wiredfool]\n\n>- Fixed TIFF multiframe load when the frames have different compression types 1782\n>  [radarhere, geka000]\n\n>- Added __copy__ method to Image 1772\n>  [radarhere]\n\n>- Updated dates in PIL license in OleFileIO README 1787\n>  [radarhere]\n\n>- Corrected Tiff tag names 1786\n>  [radarhere]\n\n>- Fixed documented name of JPEG property 1783\n>  [radarhere]\n\n>- Fixed UnboundLocalError when loading a corrupt jpeg2k file 1780\n>  [wiredfool]\n\n>- Fixed integer overflow in path.c 1773\n>  [wiredfool, nedwill]\n\n>- Added debug to command line help text for pilprint 1766\n>  [radarhere]\n\n>- Expose many more fields in ICC Profiles 1756\n>  [lambdafu]\n\n>- Documentation changes, URL update, transpose, release checklist\n>  [radarhere]\n\n>- Fixed saving to nonexistant files specified by pathlib.Path objects 1748 (fixes 1747)\n>  [radarhere]\n\n>- Round Image.crop arguments to the nearest integer 1745 (fixes 1744)\n>  [hugovk]\n\n>- Fix uninitialized variable warning in _imaging.c:getink 1663 (fixes 486)\n>  [wiredfool]\n\n>- Disable multiprocessing install on cygwin 1700 (fixes 1690)\n>  [wiredfool]\n\n>- Fix the error reported when libz is not found 1764\n>  [wiredfool]\n\n>- More general error check to avoid Symbol not found: _PyUnicodeUCS2_AsLatin1String on OS X 1761\n>  [wiredfool]\n\n>- Added py35 to tox envlist 1724\n>  [radarhere]\n\n>- Fix EXIF tag name typos 1736\n>  [zarlant, radarhere]\n\n>- Updated freetype to 2.6.3, Tk/Tcl to 8.6.5 and 8.5.19 1725, 1752\n>  [radarhere]\n\n>- Add a loader for the FTEX format from Independence War 2: Edge of Chaos 1688\n>  [jleclanche]\n\n>- Improved alpha_composite documentation 1698\n>  [radarhere]\n\n>- Extend ImageDraw.text method to pass on multiline_text method specific arguments 1647\n>  [radarhere]\n\n>- Allow ImageSequence to seek to zero 1686\n>  [radarhere]\n\n>- ImageSequence Iterator is now an iterator 1649\n>  [radarhere]\n\n>- Updated windows test builds to jpeg9b 1673\n>  [radarhere]\n\n>- Fixed support for .gbr version 1 images, added support for version 2 in GbrImagePlugin 1653\n>  [wiredfool]\n\n>- Clarified which YCbCr format is used 1677\n>  [radarhere]\n\n>- Added TiffTags documentation, Moved windows build documentation to winbuild/ 1667\n>  [wiredfool]\n\n>- Add tests for OLE file based formats 1678\n>  [radarhere]\n\n>- Add TIFF IFD test 1671\n>  [radarhere]\n\n>- Add a basic DDS image plugin with more tests 1654\n>  [jleclanche, hugovk, wiredfool]\n\n>- Fix incorrect conditional in encode.c 1638\n>  [manisandro]\n\n\n\n\n>### 3.1.2\n\n>------------------\n\n>- Fixed an integer overflow in Jpeg2KEncode.c causing a buffer overflow. CVE-2016-3076\n>  [wiredfool]\n\n\n\n>### 3.1.1\n\n>------------------\n\n>- Fixed an integer overflow in Resample.c causing writes in the Python heap.\n>  [nedwill]\n\n>- Fixed a buffer overflow in PcdDecode.c causing a segfault when opening PhotoCD files. CVE-2016-2533\n>  [wiredfool]\n\n>- Fixed a buffer overflow in FliDecode.c causing a segfault when opening FLI files. CVE-2016-0775\n>  [wiredfool]\n\n>- Fixed a buffer overflow in TiffDecode.c causing an arbitrary amount of memory to be overwritten when opening a specially crafted invalid TIFF file. CVE-2016-0740\n>  [wiredfool]\n\n\n\n\n\n\n\n\n### Django 1.10 -> 1.11.4\n\n>### 1.11.4\n\n>===========================\n\n>*August 1, 2017*\n\n>Django 1.11.4 fixes several bugs in 1.11.3.\n\n>Bugfixes\n>========\n\n>* Fixed a regression in 1.11.3 on Python 2 where non-ASCII ``format`` values\n>  for date/time widgets results in an empty ``value`` in the widget&#39;s HTML\n>  (:ticket:`28355`).\n\n>* Fixed ``QuerySet.union()`` and ``difference()`` when combining with\n>  a queryset raising ``EmptyResultSet`` (:ticket:`28378`).\n\n>* Fixed a regression in pickling of ``LazyObject`` on Python 2 when the wrapped\n>  object doesn&#39;t have ``__reduce__()`` (:ticket:`28389`).\n\n>* Fixed crash in ``runserver``&#39;s ``autoreload`` with Python 2 on Windows with\n>  non-``str`` environment variables (:ticket:`28174`).\n\n>* Corrected ``Field.has_changed()`` to return ``False`` for disabled form\n>  fields: ``BooleanField``, ``MultipleChoiceField``, ``MultiValueField``,\n>  ``FileField``, ``ModelChoiceField``, and ``ModelMultipleChoiceField``.\n\n>* Fixed ``QuerySet.count()`` for ``union()``, ``difference()``, and\n>  ``intersection()`` queries. (:ticket:`28399`).\n\n>* Fixed ``ClearableFileInput`` rendering as a subwidget of ``MultiWidget``\n>  (:ticket:`28414`). Custom ``clearable_file_input.html`` widget templates\n>  will need to adapt for the fact that context values\n>  ``checkbox_name``, ``checkbox_id``, ``is_initial``, ``input_text``,\n>  ``initial_text``, and ``clear_checkbox_label`` are now attributes of\n>  ``widget`` rather than appearing in the top-level context.\n\n>* Fixed queryset crash when using a ``GenericRelation`` to a proxy model\n>  (:ticket:`28418`).\n\n\n>===========================\n\n\n>### 1.11.3\n\n>===========================\n\n>*July 1, 2017*\n\n>Django 1.11.3 fixes several bugs in 1.11.2.\n\n>Bugfixes\n>========\n\n>* Removed an incorrect deprecation warning about a missing ``renderer``\n>  argument if a ``Widget.render()`` method accepts ``**kwargs``\n>  (:ticket:`28265`).\n\n>* Fixed a regression causing ``Model.__init__()`` to crash if a field has an\n>  instance only descriptor (:ticket:`28269`).\n\n>* Fixed an incorrect ``DisallowedModelAdminLookup`` exception when using\n>  a nested reverse relation in ``list_filter`` (:ticket:`28262`).\n\n>* Fixed admin&#39;s ``FieldListFilter.get_queryset()`` crash on invalid input\n>  (:ticket:`28202`).\n\n>* Fixed invalid HTML for a required ``AdminFileWidget`` (:ticket:`28278`).\n\n>* Fixed model initialization to set the name of class-based model indexes\n>  for models that only inherit ``models.Model`` (:ticket:`28282`).\n\n>* Fixed crash in admin&#39;s inlines when a model has an inherited non-editable\n>  primary key (:ticket:`27967`).\n\n>* Fixed ``QuerySet.union()``, ``intersection()``, and ``difference()`` when\n>  combining with an ``EmptyQuerySet`` (:ticket:`28293`).\n\n>* Prevented ``Paginator``’s unordered object list warning from evaluating a\n>  ``QuerySet`` (:ticket:`28284`).\n\n>* Fixed the value of ``redirect_field_name`` in ``LoginView``’s template\n>  context. It&#39;s now an empty string (as it is for the original function-based\n>  ``login()`` view) if the corresponding parameter isn&#39;t sent in a request (in\n>  particular, when the login page is accessed directly) (:ticket:`28229`).\n\n>* Prevented attribute values in the ``django/forms/widgets/attrs.html``\n>  template from being localized so that numeric attributes (e.g. ``max`` and\n>  ``min``) of ``NumberInput`` work correctly (:ticket:`28303`).\n\n>* Removed casting of the option value to a string in the template context of\n>  the ``CheckboxSelectMultiple``, ``NullBooleanSelect``, ``RadioSelect``,\n>  ``SelectMultiple``, and ``Select`` widgets (:ticket:`28176`). In Django\n>  1.11.1, casting was added in Python to avoid localization of numeric values\n>  in Django templates, but this made some use cases more difficult. Casting is\n>  now done in the template using the ``|stringformat:&#39;s&#39;`` filter.\n\n>* Prevented a primary key alteration from adding a foreign key constraint if\n>  ``db_constraint=False`` (:ticket:`28298`).\n\n>* Fixed ``UnboundLocalError`` crash in ``RenameField`` with nonexistent field\n>  (:ticket:`28350`).\n\n>* Fixed a regression preventing a model field&#39;s ``limit_choices_to`` from being\n>  evaluated when a ``ModelForm`` is instantiated (:ticket:`28345`).\n\n\n>===========================\n\n\n>### 1.11.2\n\n>===========================\n\n>*June 1, 2017*\n\n>Django 1.11.2 adds a minor feature and fixes several bugs in 1.11.1. Also, the\n>latest string translations from Transifex are incorporated.\n\n>Minor feature\n>=============\n\n>The new ``LiveServerTestCase.port`` attribute reallows the use case of binding\n>to a specific port following the :ref:`bind to port zero\n>&lt;liveservertestcase-port-zero-change&gt;` change in Django 1.11.\n\n>Bugfixes\n>========\n\n>* Added detection for GDAL 2.1 and 2.0, and removed detection for unsupported\n>  versions 1.7 and 1.8 (:ticket:`28181`).\n\n>* Changed ``contrib.gis`` to raise ``ImproperlyConfigured`` rather than\n>  ``GDALException`` if ``gdal`` isn&#39;t installed, to allow third-party apps to\n>  catch that exception (:ticket:`28178`).\n\n>* Fixed ``django.utils.http.is_safe_url()`` crash on invalid IPv6 URLs\n>  (:ticket:`28142`).\n\n>* Fixed regression causing pickling of model fields to crash (:ticket:`28188`).\n\n>* Fixed ``django.contrib.auth.authenticate()`` when multiple authentication\n>  backends don&#39;t accept a positional ``request`` argument (:ticket:`28207`).\n\n>* Fixed introspection of index field ordering on PostgreSQL (:ticket:`28197`).\n\n>* Fixed a regression where ``Model._state.adding`` wasn&#39;t set correctly on\n>  multi-table inheritance parent models after saving a child model\n>  (:ticket:`28210`).\n\n>* Allowed ``DjangoJSONEncoder`` to serialize\n>  ``django.utils.deprecation.CallableBool`` (:ticket:`28230`).\n\n>* Relaxed the validation added in Django 1.11 of the fields in the ``defaults``\n>  argument of ``QuerySet.get_or_create()`` and ``update_or_create()`` to\n>  reallow settable model properties (:ticket:`28222`).\n\n>* Fixed ``MultipleObjectMixin.paginate_queryset()`` crash on Python 2 if the\n>  ``InvalidPage`` message contains non-ASCII (:ticket:`28204`).\n\n>* Prevented ``Subquery`` from adding an unnecessary ``CAST`` which resulted in\n>  invalid SQL (:ticket:`28199`).\n\n>* Corrected detection of GDAL 2.1 on Windows (:ticket:`28181`).\n\n>* Made date-based generic views return a 404 rather than crash when given an\n>  out of range date (:ticket:`28209`).\n\n>* Fixed a regression where ``file_move_safe()`` crashed when moving files to a\n>  CIFS mount (:ticket:`28170`).\n\n>* Moved the ``ImageField`` file extension validation added in Django 1.11 from\n>  the model field to the form field to reallow the use case of storing images\n>  without an extension (:ticket:`28242`).\n\n\n>===========================\n\n\n>### 1.11.1\n\n>===========================\n\n>*May 6, 2017*\n\n>Django 1.11.1 adds a minor feature and fixes several bugs in 1.11.\n\n>Allowed disabling server-side cursors on PostgreSQL\n>===================================================\n\n>The change in Django 1.11 to make :meth:`.QuerySet.iterator()` use server-side\n>cursors on PostgreSQL prevents running Django with `pgBouncer` in transaction\n>pooling mode. To reallow that, use the :setting:`DISABLE_SERVER_SIDE_CURSORS\n>&lt;DATABASE-DISABLE_SERVER_SIDE_CURSORS&gt;` setting in :setting:`DATABASES`.\n\n>See :ref:`transaction-pooling-server-side-cursors` for more discussion.\n\n>Bugfixes\n>========\n\n>* Made migrations respect ``Index``’s ``name`` argument. If you created a\n>  named index with Django 1.11, ``makemigrations`` will create a migration to\n>  recreate the index with the correct name (:ticket:`28051`).\n\n>* Fixed a crash when using a ``__icontains`` lookup on a ``ArrayField``\n>  (:ticket:`28038`).\n\n>* Fixed a crash when using a two-tuple in ``EmailMessage``’s ``attachments``\n>  argument (:ticket:`28042`).\n\n>* Fixed ``QuerySet.filter()`` crash when it references the name of a\n>  ``OneToOneField`` primary key (:ticket:`28047`).\n\n>* Fixed empty POST data table appearing instead of &quot;No POST data&quot; in HTML debug\n>  page (:ticket:`28079`).\n\n>* Restored ``BoundField``\\s without any ``choices`` evaluating to ``True``\n>  (:ticket:`28058`).\n\n>* Prevented ``SessionBase.cycle_key()`` from losing session data if\n>  ``_session_cache`` isn&#39;t populated (:ticket:`28066`).\n\n>* Fixed layout of ``ReadOnlyPasswordHashWidget`` (used in the admin&#39;s user\n>  change page) (:ticket:`28097`).\n\n>* Allowed prefetch calls on managers with custom ``ModelIterable`` subclasses\n>  (:ticket:`28096`).\n\n>* Fixed change password link in the ``contrib.auth`` admin for ``el``,\n>  ``es_MX``, and ``pt`` translations (:ticket:`28100`).\n\n>* Restored the output of the ``class`` attribute in the ``&lt;ul&gt;`` of widgets\n>  that use the ``multiple_input.html`` template. This fixes\n>  ``ModelAdmin.radio_fields`` with ``admin.HORIZONTAL`` (:ticket:`28059`).\n\n>* Fixed crash in ``BaseGeometryWidget.subwidgets()`` (:ticket:`28039`).\n\n>* Fixed exception reraising in ORM query execution when ``cursor.execute()``\n>  fails and the subsequent ``cursor.close()`` also fails (:ticket:`28091`).\n\n>* Fixed a regression where ``CheckboxSelectMultiple``, ``NullBooleanSelect``,\n>  ``RadioSelect``, ``SelectMultiple``, and ``Select`` localized option values\n>  (:ticket:`28075`).\n\n>* Corrected the stack level of unordered queryset pagination warnings\n>  (:ticket:`28109`).\n\n>* Fixed a regression causing incorrect queries for ``__in`` subquery lookups\n>  when models use ``ForeignKey.to_field`` (:ticket:`28101`).\n\n>* Fixed crash when overriding the template of\n>  ``django.views.static.directory_index()`` (:ticket:`28122`).\n\n>* Fixed a regression in formset ``min_num`` validation with unchanged forms\n>  that have initial data (:ticket:`28130`).\n\n>* Prepared for ``cx_Oracle`` 6.0 support (:ticket:`28138`).\n\n>* Updated the ``contrib.postgres`` ``SplitArrayWidget`` to use template-based\n>  widget rendering (:ticket:`28040`).\n\n>* Fixed crash in ``BaseGeometryWidget.get_context()`` when overriding existing\n>  ``attrs`` (:ticket:`28105`).\n\n>* Prevented ``AddIndex`` and ``RemoveIndex`` from mutating model state\n>  (:ticket:`28043`).\n\n>* Prevented migrations from dropping database indexes from ``Meta.indexes``\n>  when changing ``Field.db_index`` to ``False`` (:ticket:`28052`).\n\n>* Fixed a regression in choice ordering in form fields with grouped and\n>  non-grouped options (:ticket:`28157`).\n\n>* Fixed crash in  ``BaseInlineFormSet._construct_form()`` when using\n>  ``save_as_new`` (:ticket:`28159`).\n\n>* Fixed a regression where ``Model._state.db`` wasn&#39;t set correctly on\n>  multi-table inheritance parent models after saving a child model\n>  (:ticket:`28166`).\n\n>* Corrected the return type of ``ArrayField(CITextField())`` values retrieved\n>  from the database (:ticket:`28161`).\n\n>* Fixed ``QuerySet.prefetch_related()`` crash when fetching relations in nested\n>  ``Prefetch`` objects (:ticket:`27554`).\n\n>* Prevented hiding GDAL errors if it&#39;s not installed when using ``contrib.gis``\n>  (:ticket:`28160`). (It&#39;s a required dependency as of Django 1.11.)\n\n>* Fixed a regression causing ``__in`` lookups on a foreign key to fail when\n>  using the foreign key&#39;s parent model as the lookup value (:ticket:`28175`).\n\n\n>=========================\n\n\n>### 1.11\n\n>=========================\n\n>*April 4, 2017*\n\n>Welcome to Django 1.11!\n\n>These release notes cover the :ref:`new features &lt;whats-new-1.11&gt;`, as well as\n>some :ref:`backwards incompatible changes &lt;backwards-incompatible-1.11&gt;` you&#39;ll\n>want to be aware of when upgrading from Django 1.10 or older versions. We&#39;ve\n>:ref:`begun the deprecation process for some features\n>&lt;deprecated-features-1.11&gt;`.\n\n>See the :doc:`/howto/upgrade-version` guide if you&#39;re updating an existing\n>project.\n\n>Django 1.11 is designated as a :term:`long-term support release`. It will\n>receive security updates for at least three years after its release. Support\n>for the previous LTS, Django 1.8, will end in April 2018.\n\n>Python compatibility\n>====================\n\n>Django 1.11 requires Python 2.7, 3.4, 3.5, or 3.6. Django 1.11 is the first\n>release to support Python 3.6. We **highly recommend** and only officially\n>support the latest release of each series.\n\n>The Django 1.11.x series is the last to support Python 2. The next major\n>release, Django 2.0, will only support Python 3.5+.\n\n>Deprecating warnings are no longer loud by default\n>==================================================\n\n>Unlike older versions of Django, Django&#39;s own deprecation warnings are no\n>longer displayed by default. This is consistent with Python&#39;s default behavior.\n\n>This change allows third-party apps to support both Django 1.11 LTS and Django\n>1.8 LTS without having to add code to avoid deprecation warnings.\n\n>Following the release of Django 2.0, we suggest that third-party app authors\n>drop support for all versions of Django prior to 1.11. At that time, you should\n>be able run your package&#39;s tests using ``python -Wd`` so that deprecation\n>warnings do appear. After making the deprecation warning fixes, your app should\n>be compatible with Django 2.0.\n\n>.. _whats-new-1.11:\n\n>What&#39;s new in Django 1.11\n>=========================\n\n>Class-based model indexes\n>-------------------------\n\n>The new :mod:`django.db.models.indexes` module contains classes which ease\n>creating database indexes. Indexes are added to models using the\n>:attr:`Meta.indexes &lt;django.db.models.Options.indexes&gt;` option.\n\n>The :class:`~django.db.models.Index` class creates a b-tree index, as if you\n>used :attr:`~django.db.models.Field.db_index` on the model field or\n>:attr:`~django.db.models.Options.index_together` on the model ``Meta`` class.\n>It can be subclassed to support different index types, such as\n>:class:`~django.contrib.postgres.indexes.GinIndex`. It also allows defining the\n>order (ASC/DESC) for the columns of the index.\n\n>Template-based widget rendering\n>-------------------------------\n\n>To ease customizing widgets, form widget rendering is now done using the\n>template system rather than in Python. See :doc:`/ref/forms/renderers`.\n\n>You may need to adjust any custom widgets that you&#39;ve written for a few\n>:ref:`backwards incompatible changes &lt;template-widget-incompatibilities-1-11&gt;`.\n\n>``Subquery`` expressions\n>------------------------\n\n>The new :class:`~django.db.models.Subquery` and\n>:class:`~django.db.models.Exists` database expressions allow creating\n>explicit subqueries. Subqueries may refer to fields from the outer queryset\n>using the :class:`~django.db.models.OuterRef` class.\n\n>Minor features\n>--------------\n\n>:mod:`django.contrib.admin`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* :attr:`.ModelAdmin.date_hierarchy` can now reference fields across relations.\n\n>* The new :meth:`ModelAdmin.get_exclude()\n>  &lt;django.contrib.admin.ModelAdmin.get_exclude&gt;` hook allows specifying the\n>  exclude fields based on the request or model instance.\n\n>* The ``popup_response.html`` template can now be overridden per app, per\n>  model, or by setting the :attr:`.ModelAdmin.popup_response_template`\n>  attribute.\n\n>:mod:`django.contrib.auth`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The default iteration count for the PBKDF2 password hasher is increased by\n>  20%.\n\n>* The :class:`~django.contrib.auth.views.LoginView` and\n>  :class:`~django.contrib.auth.views.LogoutView` class-based views supersede the\n>  deprecated ``login()`` and ``logout()`` function-based views.\n\n>* The :class:`~django.contrib.auth.views.PasswordChangeView`,\n>  :class:`~django.contrib.auth.views.PasswordChangeDoneView`,\n>  :class:`~django.contrib.auth.views.PasswordResetView`,\n>  :class:`~django.contrib.auth.views.PasswordResetDoneView`,\n>  :class:`~django.contrib.auth.views.PasswordResetConfirmView`, and\n>  :class:`~django.contrib.auth.views.PasswordResetCompleteView` class-based\n>  views supersede the deprecated ``password_change()``,\n>  ``password_change_done()``, ``password_reset()``, ``password_reset_done()``,\n>  ``password_reset_confirm()``, and ``password_reset_complete()`` function-based\n>  views.\n\n>* The new ``post_reset_login`` attribute for\n>  :class:`~django.contrib.auth.views.PasswordResetConfirmView` allows\n>  automatically logging in a user after a successful password reset.\n>  If you have multiple ``AUTHENTICATION_BACKENDS`` configured, use the\n>  ``post_reset_login_backend`` attribute to choose which one to use.\n\n>* To avoid the possibility of leaking a password reset token via the HTTP\n>  Referer header (for example, if the reset page includes a reference to CSS or\n>  JavaScript hosted on another domain), the\n>  :class:`~django.contrib.auth.views.PasswordResetConfirmView` (but not the\n>  deprecated ``password_reset_confirm()`` function-based view) stores the token\n>  in a session and redirects to itself to present the password change form to\n>  the user without the token in the URL.\n\n>* :func:`~django.contrib.auth.update_session_auth_hash` now rotates the session\n>  key to allow a password change to invalidate stolen session cookies.\n\n>* The new ``success_url_allowed_hosts`` attribute for\n>  :class:`~django.contrib.auth.views.LoginView` and\n>  :class:`~django.contrib.auth.views.LogoutView` allows specifying a set of\n>  hosts that are safe for redirecting after login and logout.\n\n>* Added password validators ``help_text`` to\n>  :class:`~django.contrib.auth.forms.UserCreationForm`.\n\n>* The ``HttpRequest`` is now passed to :func:`~django.contrib.auth.authenticate`\n>  which in turn passes it to the authentication backend if it accepts a\n>  ``request`` argument.\n\n>* The :func:`~django.contrib.auth.signals.user_login_failed` signal now\n>  receives a ``request`` argument.\n\n>* :class:`~django.contrib.auth.forms.PasswordResetForm` supports custom user\n>  models that use an email field named something other than ``&#39;email&#39;``.\n>  Set :attr:`CustomUser.EMAIL_FIELD\n>  &lt;django.contrib.auth.models.CustomUser.EMAIL_FIELD&gt;` to the name of the field.\n\n>* :func:`~django.contrib.auth.get_user_model` can now be called at import time,\n>  even in modules that define models.\n\n>:mod:`django.contrib.contenttypes`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* When stale content types are detected in the\n>  :djadmin:`remove_stale_contenttypes` command, there&#39;s now a list of related\n>  objects such as ``auth.Permission``\\s that will also be deleted. Previously,\n>  only the content types were listed (and this prompt was after ``migrate``\n>  rather than in a separate command).\n\n>:mod:`django.contrib.gis`\n>~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The new :meth:`.GEOSGeometry.from_gml` and :meth:`.OGRGeometry.from_gml`\n>  methods allow creating geometries from GML.\n\n>* Added support for the :lookup:`dwithin` lookup on SpatiaLite.\n\n>* The :class:`~django.contrib.gis.db.models.functions.Area` function,\n>  :class:`~django.contrib.gis.db.models.functions.Distance` function, and\n>  distance lookups now work with geodetic coordinates on SpatiaLite.\n\n>* The OpenLayers-based form widgets now use ``OpenLayers.js`` from\n>  ``https://cdnjs.cloudflare.com`` which is more suitable for production use\n>  than the the old ``http://openlayers.org`` source. They are also updated to\n>  use OpenLayers 3.\n\n>* PostGIS migrations can now change field dimensions.\n\n>* Added the ability to pass the `size`, `shape`, and `offset` parameter when\n>  creating :class:`~django.contrib.gis.gdal.GDALRaster` objects.\n\n>* Added SpatiaLite support for the\n>  :class:`~django.contrib.gis.db.models.functions.IsValid` function,\n>  :class:`~django.contrib.gis.db.models.functions.MakeValid` function, and\n>  :lookup:`isvalid` lookup.\n\n>* Added Oracle support for the\n>  :class:`~django.contrib.gis.db.models.functions.AsGML` function,\n>  :class:`~django.contrib.gis.db.models.functions.BoundingCircle` function,\n>  :class:`~django.contrib.gis.db.models.functions.IsValid` function, and\n>  :lookup:`isvalid` lookup.\n\n>:mod:`django.contrib.postgres`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The new ``distinct`` argument for\n>  :class:`~django.contrib.postgres.aggregates.StringAgg` determines if\n>  concatenated values will be distinct.\n\n>* The new :class:`~django.contrib.postgres.indexes.GinIndex` and\n>  :class:`~django.contrib.postgres.indexes.BrinIndex` classes allow\n>  creating ``GIN`` and ``BRIN`` indexes in the database.\n\n>* :class:`~django.contrib.postgres.fields.JSONField` accepts a new ``encoder``\n>  parameter to specify a custom class to encode data types not supported by the\n>  standard encoder.\n\n>* The new :class:`~django.contrib.postgres.fields.CIText` mixin and\n>  :class:`~django.contrib.postgres.operations.CITextExtension` migration\n>  operation allow using PostgreSQL&#39;s ``citext`` extension for case-insensitive\n>  lookups. Three fields are provided: :class:`.CICharField`,\n>  :class:`.CIEmailField`, and :class:`.CITextField`.\n\n>* The new :class:`~django.contrib.postgres.aggregates.JSONBAgg` allows\n>  aggregating values as a JSON array.\n\n>* The :class:`~django.contrib.postgres.fields.HStoreField` (model field) and\n>  :class:`~django.contrib.postgres.forms.HStoreField` (form field) allow\n>  storing null values.\n\n>Cache\n>~~~~~\n\n>* Memcached backends now pass the contents of :setting:`OPTIONS &lt;CACHES-OPTIONS&gt;`\n>  as keyword arguments to the client constructors, allowing for more advanced\n>  control of client behavior. See the :ref:`cache arguments &lt;cache_arguments&gt;`\n>  documentation for examples.\n\n>* Memcached backends now allow defining multiple servers as a comma-delimited\n>  string in :setting:`LOCATION &lt;CACHES-LOCATION&gt;`, for convenience with\n>  third-party services that use such strings in environment variables.\n\n>CSRF\n>~~~~\n\n>* Added the :setting:`CSRF_USE_SESSIONS` setting to allow storing the CSRF\n>  token in the user&#39;s session rather than in a cookie.\n\n>Database backends\n>~~~~~~~~~~~~~~~~~\n\n>* Added the ``skip_locked`` argument to :meth:`.QuerySet.select_for_update()`\n>  on PostgreSQL 9.5+ and Oracle to execute queries with\n>  ``FOR UPDATE SKIP LOCKED``.\n\n>* Added the :setting:`TEST[&#39;TEMPLATE&#39;] &lt;TEST_TEMPLATE&gt;` setting to let\n>  PostgreSQL users specify a template for creating the test database.\n\n>* :meth:`.QuerySet.iterator()` now uses :ref:`server-side cursors\n>  &lt;psycopg2:server-side-cursors&gt;` on PostgreSQL. This feature transfers some of\n>  the worker memory load (used to hold query results) to the database and might\n>  increase database memory usage.\n\n>* Added MySQL support for the ``&#39;isolation_level&#39;`` option in\n>  :setting:`OPTIONS` to allow specifying the :ref:`transaction isolation level\n>  &lt;mysql-isolation-level&gt;`. To avoid possible data loss, it&#39;s recommended to\n>  switch from MySQL&#39;s default level, repeatable read, to read committed.\n\n>* Added support for ``cx_Oracle`` 5.3.\n\n>Email\n>~~~~~\n\n>* Added the :setting:`EMAIL_USE_LOCALTIME` setting to allow sending SMTP date\n>  headers in the local time zone rather than in UTC.\n\n>* ``EmailMessage.attach()`` and ``attach_file()`` now fall back to MIME type\n>  ``application/octet-stream`` when binary content that can&#39;t be decoded as\n>  UTF-8 is specified for a ``text/*`` attachment.\n\n>File Storage\n>~~~~~~~~~~~~\n\n>* To make it wrappable by :class:`io.TextIOWrapper`,\n>  :class:`~django.core.files.File` now has the ``readable()``, ``writable()``,\n>  and ``seekable()`` methods.\n\n>Forms\n>~~~~~\n\n>* The new :attr:`CharField.empty_value &lt;django.forms.CharField.empty_value&gt;`\n>  attribute allows specifying the Python value to use to represent &quot;empty&quot;.\n\n>* The new :meth:`Form.get_initial_for_field()\n>  &lt;django.forms.Form.get_initial_for_field&gt;` method returns initial data for a\n>  form field.\n\n>Internationalization\n>~~~~~~~~~~~~~~~~~~~~\n\n>* Number formatting and the :setting:`NUMBER_GROUPING` setting support\n>  non-uniform digit grouping.\n\n>Management Commands\n>~~~~~~~~~~~~~~~~~~~\n\n>* The new :option:`loaddata --exclude` option allows excluding models and apps\n>  while loading data from fixtures.\n\n>* The new :option:`diffsettings --default` option allows specifying a settings\n>  module other than Django&#39;s default settings to compare against.\n\n>* ``app_label``\\s arguments now limit the :option:`showmigrations --plan`\n>  output.\n\n>Migrations\n>~~~~~~~~~~\n\n>* Added support for serialization of ``uuid.UUID`` objects.\n\n>Models\n>~~~~~~\n\n>* Added support for callable values in the ``defaults`` argument of\n>  :meth:`QuerySet.update_or_create()\n>  &lt;django.db.models.query.QuerySet.update_or_create&gt;` and\n>  :meth:`~django.db.models.query.QuerySet.get_or_create`.\n\n>* :class:`~django.db.models.ImageField` now has a default\n>  :data:`~django.core.validators.validate_image_file_extension` validator.\n>  (This validator moved to the form field in :doc:`Django 1.11.2 &lt;1.11.2&gt;`.)\n\n>* Added support for time truncation to\n>  :class:`~django.db.models.functions.datetime.Trunc` functions.\n\n>* Added the :class:`~django.db.models.functions.datetime.ExtractWeek` function\n>  to extract the week from :class:`~django.db.models.DateField` and\n>  :class:`~django.db.models.DateTimeField` and exposed it through the\n>  :lookup:`week` lookup.\n\n>* Added the :class:`~django.db.models.functions.datetime.TruncTime` function\n>  to truncate :class:`~django.db.models.DateTimeField` to its time component\n>  and exposed it through the :lookup:`time` lookup.\n\n>* Added support for expressions in :meth:`.QuerySet.values` and\n>  :meth:`~.QuerySet.values_list`.\n\n>* Added support for query expressions on lookups that take multiple arguments,\n>  such as ``range``.\n\n>* You can now use the ``unique=True`` option with\n>  :class:`~django.db.models.FileField`.\n\n>* Added the ``nulls_first`` and ``nulls_last`` parameters to\n>  :class:`Expression.asc() &lt;django.db.models.Expression.asc&gt;` and\n>  :meth:`~django.db.models.Expression.desc` to control\n>  the ordering of null values.\n\n>* The new ``F`` expression ``bitleftshift()`` and ``bitrightshift()`` methods\n>  allow :ref:`bitwise shift operations &lt;using-f-expressions-in-filters&gt;`.\n\n>* Added :meth:`.QuerySet.union`, :meth:`~.QuerySet.intersection`, and\n>  :meth:`~.QuerySet.difference`.\n\n>Requests and Responses\n>~~~~~~~~~~~~~~~~~~~~~~\n\n>* Added :meth:`QueryDict.fromkeys() &lt;django.http.QueryDict.fromkeys&gt;`.\n\n>* :class:`~django.middleware.common.CommonMiddleware` now sets the\n>  ``Content-Length`` response header for non-streaming responses.\n\n>* Added the :setting:`SECURE_HSTS_PRELOAD` setting to allow appending the\n>  ``preload`` directive to the ``Strict-Transport-Security`` header.\n\n>* :class:`~django.middleware.http.ConditionalGetMiddleware` now adds the\n>  ``ETag`` header to responses.\n\n>Serialization\n>~~~~~~~~~~~~~\n\n>* The new ``django.core.serializers.base.Serializer.stream_class`` attribute\n>  allows subclasses to customize the default stream.\n\n>* The encoder used by the :ref:`JSON serializer &lt;serialization-formats-json&gt;`\n>  can now be customized by passing a ``cls`` keyword argument to the\n>  ``serializers.serialize()`` function.\n\n>* :class:`~django.core.serializers.json.DjangoJSONEncoder` now serializes\n>  :class:`~datetime.timedelta` objects (used by\n>  :class:`~django.db.models.DurationField`).\n\n>Templates\n>~~~~~~~~~\n\n>* :meth:`~django.utils.safestring.mark_safe` can now be used as a decorator.\n\n>* The :class:`~django.template.backends.jinja2.Jinja2` template backend now\n>  supports context processors by setting the ``&#39;context_processors&#39;`` option in\n>  :setting:`OPTIONS &lt;TEMPLATES-OPTIONS&gt;`.\n\n>* The :ttag:`regroup` tag now returns ``namedtuple``\\s instead of dictionaries\n>  so you can unpack the group object directly in a loop, e.g.\n>  ``{% for grouper, list in regrouped %}``.\n\n>* Added a :ttag:`resetcycle` template tag to allow resetting the sequence of\n>  the :ttag:`cycle` template tag.\n\n>* You can now specify specific directories for a particular\n>  :class:`filesystem.Loader &lt;django.template.loaders.filesystem.Loader&gt;`.\n\n>Tests\n>~~~~~\n\n>* Added :meth:`.DiscoverRunner.get_test_runner_kwargs` to allow customizing the\n>  keyword arguments passed to the test runner.\n\n>* Added the :option:`test --debug-mode` option to help troubleshoot test\n>  failures by setting the :setting:`DEBUG` setting to ``True``.\n\n>* The new :func:`django.test.utils.setup_databases` (moved from\n>  ``django.test.runner``) and :func:`~django.test.utils.teardown_databases`\n>  functions make it easier to build custom test runners.\n\n>* Added support for :meth:`python:unittest.TestCase.subTest`’s when using the\n>  :option:`test --parallel` option.\n\n>* ``DiscoverRunner`` now runs the system checks at the start of a test run.\n>  Override the :meth:`.DiscoverRunner.run_checks` method if you want to disable\n>  that.\n\n>Validators\n>~~~~~~~~~~\n\n>* Added :class:`~django.core.validators.FileExtensionValidator` to validate\n>  file extensions and\n>  :data:`~django.core.validators.validate_image_file_extension` to validate\n>  image files.\n\n>.. _backwards-incompatible-1.11:\n\n>Backwards incompatible changes in 1.11\n>======================================\n\n>:mod:`django.contrib.gis`\n>-------------------------\n\n>* To simplify the codebase and because it&#39;s easier to install than when\n>  ``contrib.gis`` was first released, :ref:`gdalbuild` is now a required\n>  dependency for GeoDjango. In older versions, it&#39;s only required for SQLite.\n\n>* ``contrib.gis.maps`` is removed as it interfaces with a retired version of\n>  the Google Maps API and seems to be unmaintained. If you&#39;re using it, `let\n>  us know &lt;https://code.djangoproject.com/ticket/14284&gt;`_.\n\n>* The ``GEOSGeometry`` equality operator now also compares SRID.\n\n>* The OpenLayers-based form widgets now use OpenLayers 3, and the\n>  ``gis/openlayers.html`` and ``gis/openlayers-osm.html`` templates have been\n>  updated. Check your project if you subclass these widgets or extend the\n>  templates. Also, the new widgets work a bit differently than the old ones.\n>  Instead of using a toolbar in the widget, you click to draw, click and drag\n>  to move the map, and click and drag a point/vertex/corner to move it.\n\n>* Support for SpatiaLite &lt; 4.0 is dropped.\n\n>* Support for GDAL 1.7 and 1.8 is dropped.\n\n>* The widgets in ``contrib.gis.forms.widgets`` and the admin&#39;s\n>  ``OpenLayersWidget`` use the :doc:`form rendering API &lt;/ref/forms/renderers&gt;`\n>  rather than ``loader.render_to_string()``. If you&#39;re using a custom widget\n>  template, you&#39;ll need to be sure your form renderer can locate it. For\n>  example, you could use the :class:`~django.forms.renderers.TemplatesSetting`\n>  renderer.\n\n>:mod:`django.contrib.staticfiles`\n>---------------------------------\n\n>* ``collectstatic`` may now fail during post-processing when using a hashed\n>  static files storage if a reference loop exists (e.g. ``&#39;foo.css&#39;``\n>  references ``&#39;bar.css&#39;`` which itself references ``&#39;foo.css&#39;``) or if the\n>  chain of files referencing other files is too deep to resolve in several\n>  passes. In the latter case, increase the number of passes using\n>  :attr:`.ManifestStaticFilesStorage.max_post_process_passes`.\n\n>* When using ``ManifestStaticFilesStorage``, static files not found in the\n>  manifest at runtime now raise a ``ValueError`` instead of returning an\n>  unchanged path. You can revert to the old behavior by setting\n>  :attr:`.ManifestStaticFilesStorage.manifest_strict` to ``False``.\n\n>Database backend API\n>--------------------\n\n>This section describes changes that may be needed in third-party database\n>backends.\n\n>* The ``DatabaseOperations.time_trunc_sql()`` method is added to support\n>  ``TimeField`` truncation. It accepts a ``lookup_type`` and ``field_name``\n>  arguments and returns the appropriate SQL to truncate the given time field\n>  ``field_name`` to a time object with only the given specificity. The\n>  ``lookup_type`` argument can be either ``&#39;hour&#39;``, ``&#39;minute&#39;``, or\n>  ``&#39;second&#39;``.\n\n>* The ``DatabaseOperations.datetime_cast_time_sql()`` method is added to\n>  support the :lookup:`time` lookup. It accepts a ``field_name`` and ``tzname``\n>  arguments and returns the SQL necessary to cast a datetime value to time value.\n\n>* To enable ``FOR UPDATE SKIP LOCKED`` support, set\n>  ``DatabaseFeatures.has_select_for_update_skip_locked = True``.\n\n>* The new ``DatabaseFeatures.supports_index_column_ordering`` attribute\n>  specifies if a database allows defining ordering for columns in indexes. The\n>  default value is ``True`` and the ``DatabaseIntrospection.get_constraints()``\n>  method should include an ``&#39;orders&#39;`` key in each of the returned\n>  dictionaries with a list of ``&#39;ASC&#39;`` and/or ``&#39;DESC&#39;`` values corresponding\n>  to the the ordering of each column in the index.\n\n>* :djadmin:`inspectdb` no longer calls ``DatabaseIntrospection.get_indexes()``\n>  which is deprecated. Custom database backends should ensure all types of\n>  indexes are returned by ``DatabaseIntrospection.get_constraints()``.\n\n>* Renamed the ``ignores_quoted_identifier_case`` feature to\n>  ``ignores_table_name_case`` to more accurately reflect how it is used.\n\n>* The ``name`` keyword argument is added to the\n>  ``DatabaseWrapper.create_cursor(self, name=None)`` method to allow usage of\n>  server-side cursors on backends that support it.\n\n>Dropped support for PostgreSQL 9.2 and PostGIS 2.0\n>--------------------------------------------------\n\n>Upstream support for PostgreSQL 9.2 ends in September 2017. As a consequence,\n>Django 1.11 sets PostgreSQL 9.3 as the minimum version it officially supports.\n\n>Support for PostGIS 2.0 is also removed as PostgreSQL 9.2 is the last version\n>to support it.\n\n>Also, the minimum supported version of psycopg2 is increased from 2.4.5 to\n>2.5.4.\n\n>.. _liveservertestcase-port-zero-change:\n\n>``LiveServerTestCase`` binds to port zero\n>-----------------------------------------\n\n>Rather than taking a port range and iterating to find a free port,\n>``LiveServerTestCase`` binds to port zero and relies on the operating system\n>to assign a free port. The ``DJANGO_LIVE_TEST_SERVER_ADDRESS`` environment\n>variable is no longer used, and as it&#39;s also no longer used, the\n>``manage.py test --liveserver`` option is removed.\n\n>If you need to bind ``LiveServerTestCase`` to a specific port, use the ``port``\n>attribute added in Django 1.11.2.\n\n>Protection against insecure redirects in :mod:`django.contrib.auth` and ``i18n`` views\n>--------------------------------------------------------------------------------------\n\n>``LoginView``, ``LogoutView`` (and the deprecated function-based equivalents),\n>and :func:`~django.views.i18n.set_language` protect users from being redirected\n>to non-HTTPS ``next`` URLs when the app is running over HTTPS.\n\n>``QuerySet.get_or_create()`` and ``update_or_create()`` validate arguments\n>--------------------------------------------------------------------------\n\n>To prevent typos from passing silently,\n>:meth:`~django.db.models.query.QuerySet.get_or_create` and\n>:meth:`~django.db.models.query.QuerySet.update_or_create` check that their\n>arguments are model fields. This should be backwards-incompatible only in the\n>fact that it might expose a bug in your project.\n\n>``pytz`` is a required dependency and support for ``settings.TIME_ZONE = None`` is removed\n>------------------------------------------------------------------------------------------\n\n>To simplify Django&#39;s timezone handling, ``pytz`` is now a required dependency.\n>It&#39;s automatically installed along with Django.\n\n>Support for ``settings.TIME_ZONE = None`` is removed as the behavior isn&#39;t\n>commonly used and is questionably useful. If you want to automatically detect\n>the timezone based on the system timezone, you can use `tzlocal\n>&lt;https://pypi.python.org/pypi/tzlocal&gt;`_::\n\n>    from tzlocal import get_localzone\n\n>    TIME_ZONE = get_localzone().zone\n\n>This works similar to ``settings.TIME_ZONE = None`` except that it also sets\n>``os.environ[&#39;TZ&#39;]``. `Let us know\n>&lt;https://groups.google.com/d/topic/django-developers/OAV3FChfuPM/discussion&gt;`__\n>if there&#39;s a use case where you find you can&#39;t adapt your code to set a\n>``TIME_ZONE``.\n\n>HTML changes in admin templates\n>-------------------------------\n\n>``&lt;p class=&quot;help&quot;&gt;`` is replaced with a ``&lt;div&gt;`` tag to allow including lists\n>inside help text.\n\n>Read-only fields are wrapped in ``&lt;div class=&quot;readonly&quot;&gt;...&lt;/div&gt;`` instead of\n>``&lt;p&gt;...&lt;/p&gt;`` to allow any kind of HTML as the field&#39;s content.\n\n>.. _template-widget-incompatibilities-1-11:\n\n>Changes due to the introduction of template-based widget rendering\n>------------------------------------------------------------------\n\n>Some undocumented classes in ``django.forms.widgets`` are removed:\n\n>* ``SubWidget``\n>* ``RendererMixin``, ``ChoiceFieldRenderer``, ``RadioFieldRenderer``,\n>  ``CheckboxFieldRenderer``\n>* ``ChoiceInput``, ``RadioChoiceInput``, ``CheckboxChoiceInput``\n\n>The undocumented ``Select.render_option()`` method is removed.\n\n>The ``Widget.format_output()`` method is removed. Use a custom widget template\n>instead.\n\n>Some widget values, such as ``&lt;select&gt;`` options, are now localized if\n>``settings.USE_L10N=True``. You could revert to the old behavior with custom\n>widget templates that uses the :ttag:`localize` template tag to turn off\n>localization.\n\n>``django.template.backends.django.Template.render()`` prohibits non-dict context\n>--------------------------------------------------------------------------------\n\n>For compatibility with multiple template engines,\n>``django.template.backends.django.Template.render()`` (returned from high-level\n>template loader APIs such as ``loader.get_template()``) must receive a\n>dictionary of context rather than ``Context`` or ``RequestContext``. If you\n>were passing either of the two classes, pass a dictionary instead -- doing so\n>is backwards-compatible with older versions of Django.\n\n>Model state changes in migration operations\n>-------------------------------------------\n\n>To improve the speed of applying migrations, rendering of related models is\n>delayed until an operation that needs them (e.g. ``RunPython``). If you have a\n>custom operation that works with model classes or model instances from the\n>``from_state`` argument in ``database_forwards()`` or ``database_backwards()``,\n>you must render model states using the ``clear_delayed_apps_cache()`` method as\n>described in :ref:`writing your own migration operation\n>&lt;writing-your-own-migration-operation&gt;`.\n\n>Miscellaneous\n>-------------\n\n>* If no items in the feed have a ``pubdate`` or ``updateddate`` attribute,\n>  :meth:`SyndicationFeed.latest_post_date()\n>  &lt;django.utils.feedgenerator.SyndicationFeed.latest_post_date&gt;` now returns\n>  the current UTC date/time, instead of a datetime without any timezone\n>  information.\n\n>* CSRF failures are logged to the ``django.security.csrf`` logger instead of\n>  ``django.request``.\n\n>* :setting:`ALLOWED_HOSTS` validation is no longer disabled when running tests.\n>  If your application includes tests with custom host names, you must include\n>  those host names in :setting:`ALLOWED_HOSTS`. See\n>  :ref:`topics-testing-advanced-multiple-hosts`.\n\n>* Using a foreign key&#39;s id (e.g. ``&#39;field_id&#39;``) in ``ModelAdmin.list_display``\n>  displays the related object&#39;s ID. Remove the ``_id`` suffix if you want the\n>  old behavior of the string representation of the object.\n\n>* In model forms, :class:`~django.db.models.CharField` with ``null=True`` now\n>  saves ``NULL`` for blank values instead of empty strings.\n\n>* On Oracle, :meth:`Model.validate_un","created_at":"2017-09-01T15:20:15Z","updated_at":"2017-10-01T15:27:19Z","closed_at":"2017-10-01T15:27:19Z","merged_at":null,"merge_commit_sha":"1424c0d474abb266be19bb687b5aa19d173700d9","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/5/commits","review_comments_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/5/comments","review_comment_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/comments{/number}","comments_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/5/comments","statuses_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/statuses/55480cadbfe42837eacb3b4cef31a49c5464f173","head":{"label":"narnikgamarnikus:pyup-scheduled-update-09-01-2017","ref":"pyup-scheduled-update-09-01-2017","sha":"55480cadbfe42837eacb3b4cef31a49c5464f173","user":{"login":"narnikgamarnikus","id":12729789,"avatar_url":"https://avatars0.githubusercontent.com/u/12729789?v=4","gravatar_id":"","url":"https://api.github.com/users/narnikgamarnikus","html_url":"https://github.com/narnikgamarnikus","followers_url":"https://api.github.com/users/narnikgamarnikus/followers","following_url":"https://api.github.com/users/narnikgamarnikus/following{/other_user}","gists_url":"https://api.github.com/users/narnikgamarnikus/gists{/gist_id}","starred_url":"https://api.github.com/users/narnikgamarnikus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/narnikgamarnikus/subscriptions","organizations_url":"https://api.github.com/users/narnikgamarnikus/orgs","repos_url":"https://api.github.com/users/narnikgamarnikus/repos","events_url":"https://api.github.com/users/narnikgamarnikus/events{/privacy}","received_events_url":"https://api.github.com/users/narnikgamarnikus/received_events","type":"User","site_admin":false},"repo":{"id":88201275,"name":"gglobal","full_name":"narnikgamarnikus/gglobal","owner":{"login":"narnikgamarnikus","id":12729789,"avatar_url":"https://avatars0.githubusercontent.com/u/12729789?v=4","gravatar_id":"","url":"https://api.github.com/users/narnikgamarnikus","html_url":"https://github.com/narnikgamarnikus","followers_url":"https://api.github.com/users/narnikgamarnikus/followers","following_url":"https://api.github.com/users/narnikgamarnikus/following{/other_user}","gists_url":"https://api.github.com/users/narnikgamarnikus/gists{/gist_id}","starred_url":"https://api.github.com/users/narnikgamarnikus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/narnikgamarnikus/subscriptions","organizations_url":"https://api.github.com/users/narnikgamarnikus/orgs","repos_url":"https://api.github.com/users/narnikgamarnikus/repos","events_url":"https://api.github.com/users/narnikgamarnikus/events{/privacy}","received_events_url":"https://api.github.com/users/narnikgamarnikus/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/narnikgamarnikus/gglobal","description":null,"fork":false,"url":"https://api.github.com/repos/narnikgamarnikus/gglobal","forks_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/forks","keys_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/teams","hooks_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/hooks","issue_events_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/events{/number}","events_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/events","assignees_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/assignees{/user}","branches_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/branches{/branch}","tags_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/tags","blobs_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/refs{/sha}","trees_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/statuses/{sha}","languages_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/languages","stargazers_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/stargazers","contributors_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/contributors","subscribers_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/subscribers","subscription_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/subscription","commits_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/commits{/sha}","git_commits_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/commits{/sha}","comments_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/comments{/number}","issue_comment_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/comments{/number}","contents_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/contents/{+path}","compare_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/merges","archive_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/downloads","issues_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues{/number}","pulls_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls{/number}","milestones_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/milestones{/number}","notifications_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/labels{/name}","releases_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/releases{/id}","deployments_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/deployments","created_at":"2017-04-13T19:55:23Z","updated_at":"2017-04-26T23:19:33Z","pushed_at":"2017-10-01T15:27:15Z","git_url":"git://github.com/narnikgamarnikus/gglobal.git","ssh_url":"git@github.com:narnikgamarnikus/gglobal.git","clone_url":"https://github.com/narnikgamarnikus/gglobal.git","svn_url":"https://github.com/narnikgamarnikus/gglobal","homepage":null,"size":69331,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"narnikgamarnikus:master","ref":"master","sha":"5f7fd54da408211ed29e323252e3279b08a22c0f","user":{"login":"narnikgamarnikus","id":12729789,"avatar_url":"https://avatars0.githubusercontent.com/u/12729789?v=4","gravatar_id":"","url":"https://api.github.com/users/narnikgamarnikus","html_url":"https://github.com/narnikgamarnikus","followers_url":"https://api.github.com/users/narnikgamarnikus/followers","following_url":"https://api.github.com/users/narnikgamarnikus/following{/other_user}","gists_url":"https://api.github.com/users/narnikgamarnikus/gists{/gist_id}","starred_url":"https://api.github.com/users/narnikgamarnikus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/narnikgamarnikus/subscriptions","organizations_url":"https://api.github.com/users/narnikgamarnikus/orgs","repos_url":"https://api.github.com/users/narnikgamarnikus/repos","events_url":"https://api.github.com/users/narnikgamarnikus/events{/privacy}","received_events_url":"https://api.github.com/users/narnikgamarnikus/received_events","type":"User","site_admin":false},"repo":{"id":88201275,"name":"gglobal","full_name":"narnikgamarnikus/gglobal","owner":{"login":"narnikgamarnikus","id":12729789,"avatar_url":"https://avatars0.githubusercontent.com/u/12729789?v=4","gravatar_id":"","url":"https://api.github.com/users/narnikgamarnikus","html_url":"https://github.com/narnikgamarnikus","followers_url":"https://api.github.com/users/narnikgamarnikus/followers","following_url":"https://api.github.com/users/narnikgamarnikus/following{/other_user}","gists_url":"https://api.github.com/users/narnikgamarnikus/gists{/gist_id}","starred_url":"https://api.github.com/users/narnikgamarnikus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/narnikgamarnikus/subscriptions","organizations_url":"https://api.github.com/users/narnikgamarnikus/orgs","repos_url":"https://api.github.com/users/narnikgamarnikus/repos","events_url":"https://api.github.com/users/narnikgamarnikus/events{/privacy}","received_events_url":"https://api.github.com/users/narnikgamarnikus/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/narnikgamarnikus/gglobal","description":null,"fork":false,"url":"https://api.github.com/repos/narnikgamarnikus/gglobal","forks_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/forks","keys_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/teams","hooks_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/hooks","issue_events_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/events{/number}","events_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/events","assignees_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/assignees{/user}","branches_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/branches{/branch}","tags_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/tags","blobs_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/refs{/sha}","trees_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/statuses/{sha}","languages_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/languages","stargazers_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/stargazers","contributors_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/contributors","subscribers_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/subscribers","subscription_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/subscription","commits_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/commits{/sha}","git_commits_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/git/commits{/sha}","comments_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/comments{/number}","issue_comment_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/comments{/number}","contents_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/contents/{+path}","compare_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/merges","archive_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/downloads","issues_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues{/number}","pulls_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls{/number}","milestones_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/milestones{/number}","notifications_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/labels{/name}","releases_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/releases{/id}","deployments_url":"https://api.github.com/repos/narnikgamarnikus/gglobal/deployments","created_at":"2017-04-13T19:55:23Z","updated_at":"2017-04-26T23:19:33Z","pushed_at":"2017-10-01T15:27:15Z","git_url":"git://github.com/narnikgamarnikus/gglobal.git","ssh_url":"git@github.com:narnikgamarnikus/gglobal.git","clone_url":"https://github.com/narnikgamarnikus/gglobal.git","svn_url":"https://github.com/narnikgamarnikus/gglobal","homepage":null,"size":69331,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/5"},"html":{"href":"https://github.com/narnikgamarnikus/gglobal/pull/5"},"issue":{"href":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/5"},"comments":{"href":"https://api.github.com/repos/narnikgamarnikus/gglobal/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/narnikgamarnikus/gglobal/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/narnikgamarnikus/gglobal/statuses/55480cadbfe42837eacb3b4cef31a49c5464f173"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":3,"additions":3,"deletions":3,"changed_files":1}}
{"actor":{"display_login":"pyup-bot"}}