Commit Graph

71 Commits

Author SHA1 Message Date
Hugo van Kemenade
43b2f61e79 Add 'from __future__ import annotations' using Ruff/isort 2023-12-21 13:13:31 +02:00
Aarni Koskela
126bc44e9e Fix up most noqas
Update Tests/bench_cffi_access.py

Co-authored-by: Alexander Karpinsky <homm86@gmail.com>
2023-11-12 13:47:52 +02:00
Aarni Koskela
0c705692ea Remove old commented-out code 2023-11-06 21:21:07 +02:00
Aarni Koskela
9e615b6ad3 Add noqas for UP031 2023-11-06 12:43:14 +02:00
Hugo van Kemenade
0a432541ae
Merge pull request #7392 from radarhere/eps 2023-10-05 09:27:06 -06:00
Andrew Murray
43e6826199
Merge pull request #7382 from nopperl/parse-eps-trailer
Read bounding box information from the trailer of EPS files if specified
2023-10-02 09:53:35 +11:00
Andrew Murray
620098571a
Corrected comment priority 2023-09-30 07:54:39 +00:00
Hugo van Kemenade
0d1e83098d Add pyupgrade to pre-commit 2023-09-25 16:45:38 +03:00
Andrew Murray
d919942f8e Last trailer comment has priority 2023-09-22 18:36:52 +10:00
Andrew Murray
9de4b72c97 Trailer is not in header, ImageData or itself 2023-09-22 18:26:50 +10:00
Andrew Murray
094f23dd5c EOF ends not just the trailer, but also the file 2023-09-22 18:26:41 +10:00
Andrew Murray
8064adad7a Reduced duplicate code 2023-09-22 17:58:11 +10:00
Andrew Murray
a84a43528e Added gs_binary to control Ghostscript use on all platforms 2023-09-12 19:46:46 +10:00
Andrew Murray
f225130ee5 Only search for Ghostscript Windows binary when needed 2023-09-12 19:08:30 +10:00
pre-commit-ci[bot]
794a1d7ff2 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-09-07 18:36:32 +00:00
nopperl
12d8b439d5 Read bounding box information from the trailer of EPS files if specified 2023-09-07 20:20:35 +02:00
Andrew Murray
9979a822c7 Changed Image mode property to be read-only by default 2023-07-29 09:28:18 +10:00
Hugo van Kemenade
0c7061e7e4
Merge pull request #7056 from radarhere/eps 2023-06-13 19:47:55 +03:00
Andrew Murray
3b65261c96 Remove temporary file when error is raised 2023-06-06 17:54:55 +10:00
Andrew Murray
2203afeafa Do not set size unnecessarily if image failed to open 2023-04-01 19:36:06 +11:00
Yay295
60b717a94b add link to %ImageData definition
and remove empty comment lines
2023-03-02 15:27:06 -06:00
Yay295
4f9c3847e8 notes about %ImageData, and use better var names 2023-03-02 15:02:53 -06:00
Yay295
0f27ddafb7 split long line 2023-02-07 13:56:38 -06:00
Yay295
99b153c9ca
hyphenate "backwards-compatibility"
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2023-02-07 13:49:00 -06:00
Yay295
bd0fac80c4 deprecate EpsImagePlugin.PSFile 2023-02-06 17:26:05 -06:00
Yay295
be9aea35a8 add eps test for bad BoundingBox, good ImageData 2023-02-06 17:26:04 -06:00
Yay295
651b3521ac
Merge branch 'main' into eps_plugin_perf 2023-01-11 11:29:22 -06:00
Andrew Murray
7f57c93b89 Only read when necessary 2023-01-11 08:50:20 +11:00
Yay295
c3134dc049 refactor EpsImagePlugin
Merge the PSFile class into the EpsImageFile class to hopefully improve performance.
Also added a check for the required "%!PS-Adobe" and "%%BoundingBox" header comments.
2023-01-10 08:44:38 -06:00
Hugo van Kemenade
2ae55ccbda Improve exception traceback readability 2022-12-30 00:07:52 +02:00
Andrew Murray
7e1a0ca544 Open 1 bit EPS in mode 1 2022-08-13 18:32:29 +10:00
Hugo van Kemenade
ee85e387ba Remove redundant parentheses 2022-04-10 23:39:54 +03:00
Andrew Murray
fb7edfda68 Improved consistency of returning an image access object from load() 2022-02-02 11:49:31 +11:00
Andrew Murray
1d73a483f4 Added "transparency" argument to load() 2021-07-19 09:08:45 +10:00
Andrew Murray
ce3d69baf9 Simplified code by writing bytes instead of using wrapping to write strings 2021-04-29 21:35:57 +10:00
Eric Soroos
5a5e6db0ab Fix EPS DOS on _open -- CVE-2021-28677
* The readline used in EPS has to deal with any combination of \r and
  \n as line endings. It used an accidentally quadratic method of
  accumulating lines while looking for a line ending.
* A malicious EPS file could use this to perform a DOS of Pillow in
  the open phase, before an image was accepted for opening.
* This dates to the PIL Fork
2021-04-01 17:17:18 +03:00
Alexander
1ff61bcaa6 use offset for all binary input functions instead of slicing 2020-12-30 19:10:50 +11:00
Hugo van Kemenade
10615a7da7 Upgrade Python syntax for 3.6+
Co-authored-by: nulano <nulano@nulano.eu>
2020-07-30 10:09:18 +03:00
Hugo van Kemenade
384523fab2 Fix PostScript typos 2020-07-10 11:48:02 +03:00
Ram Rachum
2f0d430807 Fix exception causes all over the codebase 2020-06-21 13:21:25 +03:00
Andrew Murray
dd8b0de666 Close excusively opened images 2020-02-18 20:49:05 +11:00
Jon Dufresne
63729766c4 Remove unnecessary coerce to float
In Python 3, the division operator is floating point division. No longer
need to coerce integers to floating point numbers before division.
2020-01-26 06:33:18 -08:00
Hugo
e5486b40f8 Merge remote-tracking branch 'upstream/master' into rm-2.7 2019-11-18 13:56:42 +02:00
Hugo
0c5895470c Remove deprecated __version__ from plugins 2019-11-05 17:01:03 +02:00
Hugo
84e53e3757 Simplify using subprocess.DEVNULL
Co-Authored-By: Jon Dufresne <jon.dufresne@gmail.com>
2019-10-08 17:25:42 +03:00
Andrew Murray
6cd99fc3cf
Merge branch 'master' into rm-2.7 2019-10-08 18:57:27 +11:00
Jon Dufresne
64032061c0 Move several imports to the top-level of the file
This better follows PEP 8 style guide:

https://www.python.org/dev/peps/pep-0008/#imports

> Imports are always put at the top of the file, just after any module
> comments and docstrings, and before module globals and constants.

This also avoids duplicate import code within the same file.
2019-10-07 06:28:36 -07:00
Hugo
538d9e2e5d Upgrade Python syntax with pyupgrade --py3-plus 2019-10-07 14:30:59 +03:00
Hugo
af770a6c55 Drop support for EOL Python 2.7 2019-10-07 14:30:59 +03:00
Jon Dufresne
d50445ff30 Introduce isort to automate import ordering and formatting
Similar to the recent adoption of Black. isort is a Python utility to
sort imports alphabetically and automatically separate into sections. By
using isort, contributors can quickly and automatically conform to the
projects style without thinking. Just let the tool do it.

Uses the configuration recommended by the Black to avoid conflicts of
style.

Rewrite TestImageQt.test_deprecated to no rely on import order.
2019-07-06 16:11:35 -07:00