Commit Graph

8456 Commits

Author SHA1 Message Date
Jon Dufresne
c41ec5b115 Fix 'BytesWarning: Comparison between bytes and string' in PdfDict
When bytes warnings are enabled with the '-b' argument, the PdfDict
class would emit a warning.
https://docs.python.org/3/using/cmdline.html#miscellaneous-options

> -b
>
> Issue a warning when comparing bytes or bytearray with str or bytes
> with int.

Object attributes are always type str, so can safely encode them without
a type check. Observe:

    $ python3
    >>> o = object()
    >>> setattr(o, b'foo', b'bar')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: attribute name must be string, not 'bytes'
2019-01-13 09:38:13 -08:00
Jon Dufresne
7da17ad41e Improve pytest configuration to allow specific tests as CLI args
The previous test configuration made it difficult to run a single test
with the pytest CLI. There were two major issues:

- The Tests directory was not a package. It now includes a __init__.py
  file and imports from other tests modules are done with relative
  imports.

- setup.cfg always specified the Tests directory. So even if a specific
  test were specified as a CLI arg, this configuration would also always
  include all tests. This configuration has been removed to allow
  specifying a single test on the command line.

Contributors can now run specific tests with a single command such as:

  $ tox -e py37 -- Tests/test_file_pdf.py::TestFilePdf.test_rgb

This makes it easy and faster to iterate on a single test failure and is
very familiar to those that have previously used tox and pytest.

When running tox or pytest with no arguments, they still discover and
runs all tests in the Tests directory.
2019-01-13 09:00:12 -08:00
Jon Dufresne
e19d8dd84b Add linting to the tox matrix
Allows contributors to easily run the lint stage with a single command:
`tox -e lint`. This creates shorter round trips with CI in case of an
error.

Update the Travis configuration to use the new environment to run lint.
This allows using a single/common source of truth to reduce differences
between Travis and local testing.

The tox environment uses the skip_install feature as static analysis
doesn't requiring install the Pillow package itself to run. This feature
requires tox 1.9 (2015-02-24), so a minimum tox version was added to the
configuration.

https://tox.readthedocs.io/en/latest/config.html#conf-skip_install
2019-01-13 08:55:06 -08:00
Hugo
b62ff510aa
Merge pull request #3562 from hugovk/update-release-checklist
Update release checklist
2019-01-13 16:42:28 +02:00
Hugo
032efc2b23
Merge pull request #3573 from jdufresne/del
Python del is a statement not a function
2019-01-13 10:57:45 +02:00
Jon Dufresne
80e96b2c7b Use bare 'raise' to re-raise exceptions
Slightly more concise and nicer syntax
2019-01-12 18:45:37 -08:00
Jon Dufresne
51e95f6252 Catch BaseException for resource cleanup handlers
In the event of a SystemExit or KeyboardInterrupt, file resources should
still be cleaned up before re-raising the exception.

https://docs.python.org/3/library/exceptions.html#exception-hierarchy
2019-01-12 18:32:14 -08:00
Jon Dufresne
3e28ba3b7d Python del is a statement not a function
https://docs.python.org/3/reference/simple_stmts.html#the-del-statement
2019-01-12 18:28:35 -08:00
Jon Dufresne
a00fc33c04 Replace .seek() magic numbers with io.SEEK_* constants
A bit more readable.

https://docs.python.org/3/library/io.html#io.IOBase.seek
2019-01-12 18:22:07 -08:00
Jon Dufresne
a08bfa6e9f Make ContainerIO.isatty() return a bool, not int
Better follows the interface of IOBase.isatty:

https://docs.python.org/3/library/io.html#io.IOBase.isatty
2019-01-12 16:48:05 -08:00
Hugo
503138c857
Merge pull request #3559 from jdufresne/in-place-bool
Use bool type for ImageCms inPlace argument (instead of int)
2019-01-12 23:59:15 +02:00
Hugo
d442996fc3
Merge pull request #3560 from jdufresne/numpy
Install optional dependencies in tox environment
2019-01-12 23:50:38 +02:00
Hugo
5ab266e165
Merge pull request #3571 from jdufresne/setup-tkinter
Remove unused _tkinter var from setup.py
2019-01-12 23:49:25 +02:00
Jon Dufresne
eccef43837 Remove unused _tkinter var from setup.py
Unused since 659e294676.
2019-01-11 20:27:44 -08:00
Andrew Murray
7acaf3d6a6 Added support for I;16 modes for more transpose operations 2019-01-10 07:26:52 +11:00
Jon Dufresne
45740b4a28 Install optional dependencies in tox environment
Improves test coverage by reducing skipped tests when testing through
tox.
2019-01-07 21:12:07 -08:00
Jon Dufresne
0ae7b3374e Use bool type for ImageCms inPlace argument (instead of int)
The argument is used as a bool and the docs describe it as a bool, so
use an actual bool.
2019-01-07 20:22:52 -08:00
Andrew Murray
4e0a73b4fa Allow for unknown PNG chunks after image data 2019-01-08 07:21:25 +11:00
Hugo van Kemenade
7bf5246b93
Merge pull request #3554 from jdufresne/test-str
Remove unused PillowTestCase.__str__
2019-01-07 08:46:40 +02:00
cgohlke
c0f4382af2
Add TIFF compression codecs: LZMA, Zstd, WebP 2019-01-06 19:49:00 -08:00
Jon Dufresne
8a05aae988 Remove unused PillowTestCase.__str__
With the move to pytest, the class's string method is unused. pytest has
its own test progress outputter.
2019-01-06 15:18:18 -08:00
Hugo
683ea38a4e Single backticks for inline code in Markdown (double in RST) 2019-01-06 17:26:47 +02:00
Hugo
ef85d67f21 Make code blocks copy/pastable 2019-01-06 17:25:39 +02:00
Hugo
f77c5d48b4 Add command to download distributions from container 2019-01-06 17:21:08 +02:00
Hugo
7eebcbc968 Put username in code to prevent spamming when pasting checklist into release issue 2019-01-06 17:21:08 +02:00
Hugo
38df53208a Check out release branch before cherry picking 2019-01-06 17:21:08 +02:00
Hugo
0a323d2aae Ignore output of viewdoc (run by 'make release-test') 2019-01-06 17:21:08 +02:00
Hugo van Kemenade
b97f9c4fcf
Merge pull request #3524 from hugovk/check-manifest-on-ci
CI: Run check-manifest in lint job
2019-01-06 16:13:16 +02:00
Hugo van Kemenade
304800497a
Update CHANGES.rst
[CI skip]
2019-01-06 12:59:34 +02:00
Hugo van Kemenade
e946ee48a3
Merge pull request #3553 from radarhere/releasenotes
Added release notes for #3540
2019-01-06 12:56:44 +02:00
Hugo van Kemenade
4d1be57256
Merge pull request #3540 from radarhere/fp
Only close __fp if not fp
2019-01-06 12:53:04 +02:00
Hugo van Kemenade
39cd976492
Apply suggestions from code review
Co-Authored-By: radarhere <3112309+radarhere@users.noreply.github.com>
2019-01-06 21:29:54 +11:00
Andrew Murray
93a2dce8f9 Added release notes for #3540 [ci skip] 2019-01-06 16:00:51 +11:00
Hugo
0f09274690 Remove more unused hashtable functions 2019-01-05 22:26:35 +02:00
Andrew Murray
4c0e32ccf2 Improved get_format_mimetype logic 2019-01-06 07:00:00 +11:00
Hugo
f0778ba594 Remove unused hashtable destroy functions 2019-01-05 21:07:11 +02:00
Hugo van Kemenade
7447b44edf
Merge pull request #3544 from hugovk/add-5.4.1-release-notes
Add 5.4.1 release notes
2019-01-05 18:54:34 +02:00
Hugo van Kemenade
3117a7f0a9
Merge pull request #3534 from hugovk/update-release-checklist
Update release checklist
2019-01-05 13:12:20 +02:00
Hugo van Kemenade
63efe3cb29
Update CHANGES.rst 2019-01-05 12:11:42 +02:00
Hugo van Kemenade
22b0f53eb9
Merge pull request #3532 from radarhere/png_load_end_idat
PNG: Handle IDAT chunks after image end
2019-01-05 12:08:58 +02:00
Hugo van Kemenade
871db4e91a
Merge pull request #3529 from pslacerda/fix/3526
Fix build for Termux
2019-01-05 12:03:25 +02:00
Hugo van Kemenade
33d3bebb22
Merge pull request #3525 from radarhere/mimetype
Detect MIME types
2019-01-05 12:01:40 +02:00
Hugo van Kemenade
1bfed277bd
Merge pull request #25 from radarhere/add-5.4.1-release-notes
Updated release notes
2019-01-05 09:54:26 +02:00
Andrew Murray
b2905aec08 Updated release notes [ci skip] 2019-01-05 11:10:19 +11:00
Hugo
3c2940b002 Add 5.4.1 release notes 2019-01-05 01:00:15 +02:00
Alex Clark
2e17e0f618
Merge pull request #3538 from python-pillow/rtd-default-stable
Update release docs; exclude RTD changes
2019-01-04 10:17:49 -05:00
Hugo van Kemenade
0917ddf80b
Merge pull request #3539 from radarhere/copyright
Updated copyright year
2019-01-04 09:21:12 +02:00
Andrew Murray
71b64dcf73 Only close __fp if not fp 2019-01-04 12:29:23 +11:00
Alex Clark
ffc0b67896 [ci skip] Update release docs; exclude RTD changes
Less RTD work!
2019-01-03 17:54:45 -05:00
Hugo van Kemenade
1276fe42e7
Move Docker image update instructions to own repo
Re: https://github.com/python-pillow/Pillow/pull/3523#issuecomment-450855713
2019-01-03 21:56:45 +02:00