mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	Merge pull request #3596 from hugovk/rm-3.4
Drop support for EOL Python 3.4
This commit is contained in:
		
						commit
						6d64b21bb8
					
				| 
						 | 
					@ -25,8 +25,6 @@ environment:
 | 
				
			||||||
  - PYTHON: C:/Python36-x64
 | 
					  - PYTHON: C:/Python36-x64
 | 
				
			||||||
  - PYTHON: C:/Python35
 | 
					  - PYTHON: C:/Python35
 | 
				
			||||||
  - PYTHON: C:/Python35-x64
 | 
					  - PYTHON: C:/Python35-x64
 | 
				
			||||||
  - PYTHON: C:/Python34
 | 
					 | 
				
			||||||
  - PYTHON: C:/Python34-x64
 | 
					 | 
				
			||||||
  - PYTHON: C:/msys64/mingw32
 | 
					  - PYTHON: C:/msys64/mingw32
 | 
				
			||||||
    EXECUTABLE: bin/python3
 | 
					    EXECUTABLE: bin/python3
 | 
				
			||||||
    PIP_DIR: bin
 | 
					    PIP_DIR: bin
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,9 +47,6 @@ matrix:
 | 
				
			||||||
      name: "3.5 Trusty PYTHONOPTIMIZE=2"
 | 
					      name: "3.5 Trusty PYTHONOPTIMIZE=2"
 | 
				
			||||||
      dist: trusty
 | 
					      dist: trusty
 | 
				
			||||||
      env: PYTHONOPTIMIZE=2
 | 
					      env: PYTHONOPTIMIZE=2
 | 
				
			||||||
    - python: '3.4'
 | 
					 | 
				
			||||||
      name: "3.4 Trusty"
 | 
					 | 
				
			||||||
      dist: trusty
 | 
					 | 
				
			||||||
    - env: DOCKER="alpine" DOCKER_TAG="master"
 | 
					    - env: DOCKER="alpine" DOCKER_TAG="master"
 | 
				
			||||||
    - env: DOCKER="arch" DOCKER_TAG="master" # contains PyQt5
 | 
					    - env: DOCKER="arch" DOCKER_TAG="master" # contains PyQt5
 | 
				
			||||||
    - env: DOCKER="ubuntu-trusty-x86" DOCKER_TAG="master"
 | 
					    - env: DOCKER="ubuntu-trusty-x86" DOCKER_TAG="master"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -310,10 +310,8 @@ class TestCffi(AccessTest):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestEmbeddable(unittest.TestCase):
 | 
					class TestEmbeddable(unittest.TestCase):
 | 
				
			||||||
    @unittest.skipIf(not sys.platform.startswith('win32') or
 | 
					    @unittest.skipIf(not sys.platform.startswith('win32') or
 | 
				
			||||||
                     sys.version_info[:2] == (3, 4) or
 | 
					                     on_appveyor(),
 | 
				
			||||||
                     on_appveyor(),   # failing on appveyor when run from
 | 
					                     "Failing on AppVeyor when run from subprocess, not from shell")
 | 
				
			||||||
                                      # subprocess, not from shell
 | 
					 | 
				
			||||||
                     "requires Python 2.7 or >=3.5 for Windows")
 | 
					 | 
				
			||||||
    def test_embeddable(self):
 | 
					    def test_embeddable(self):
 | 
				
			||||||
        import subprocess
 | 
					        import subprocess
 | 
				
			||||||
        import ctypes
 | 
					        import ctypes
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,9 @@ Notes
 | 
				
			||||||
+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
 | 
					+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
 | 
				
			||||||
|Pillow 5.0.x - 5.1.x|       |       |       |  Yes  |       |       |  Yes  |  Yes  |  Yes  |       |
 | 
					|Pillow 5.0.x - 5.1.x|       |       |       |  Yes  |       |       |  Yes  |  Yes  |  Yes  |       |
 | 
				
			||||||
+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
 | 
					+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
 | 
				
			||||||
|Pillow >= 5.2.0     |       |       |       |  Yes  |       |       |  Yes  |  Yes  |  Yes  |  Yes  |
 | 
					|Pillow 5.2.x - 5.5.x|       |       |       |  Yes  |       |       |  Yes  |  Yes  |  Yes  |  Yes  |
 | 
				
			||||||
 | 
					+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
 | 
				
			||||||
 | 
					|Pillow >= 6.0.0     |       |       |       |  Yes  |       |       |       |  Yes  |  Yes  |  Yes  |
 | 
				
			||||||
+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
 | 
					+--------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Basic Installation
 | 
					Basic Installation
 | 
				
			||||||
| 
						 | 
					@ -170,7 +172,7 @@ Many of Pillow's features require external libraries:
 | 
				
			||||||
    the Pillow license, therefore we will not be distributing binaries
 | 
					    the Pillow license, therefore we will not be distributing binaries
 | 
				
			||||||
    with libimagequant support enabled.
 | 
					    with libimagequant support enabled.
 | 
				
			||||||
  * Windows support: Libimagequant requires VS2013/MSVC 18 to compile,
 | 
					  * Windows support: Libimagequant requires VS2013/MSVC 18 to compile,
 | 
				
			||||||
    so it is unlikely to work with any Python prior to 3.5 on Windows.
 | 
					    so it is unlikely to work with Python 2.7 on Windows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* **libraqm** provides complex text layout support.
 | 
					* **libraqm** provides complex text layout support.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -394,16 +396,16 @@ These platforms are built and tested for every change.
 | 
				
			||||||
+----------------------------------+-------------------------------+-----------------------+
 | 
					+----------------------------------+-------------------------------+-----------------------+
 | 
				
			||||||
| Fedora 29                        | 2.7                           |x86-64                 |
 | 
					| Fedora 29                        | 2.7                           |x86-64                 |
 | 
				
			||||||
+----------------------------------+-------------------------------+-----------------------+
 | 
					+----------------------------------+-------------------------------+-----------------------+
 | 
				
			||||||
| Mac OS X 10.10 Yosemite*         | 2.7, 3.4, 3.5, 3.6, 3.7       |x86-64                 |
 | 
					| Mac OS X 10.10 Yosemite*         | 2.7, 3.5, 3.6, 3.7            |x86-64                 |
 | 
				
			||||||
+----------------------------------+-------------------------------+-----------------------+
 | 
					+----------------------------------+-------------------------------+-----------------------+
 | 
				
			||||||
| Ubuntu Linux 16.04 LTS           | 2.7, 3.5, 3.6, 3.7,           |x86-64                 |
 | 
					| Ubuntu Linux 16.04 LTS           | 2.7, 3.5, 3.6, 3.7,           |x86-64                 |
 | 
				
			||||||
|                                  | PyPy, PyPy3                   |                       |
 | 
					|                                  | PyPy, PyPy3                   |                       |
 | 
				
			||||||
+----------------------------------+-------------------------------+-----------------------+
 | 
					+----------------------------------+-------------------------------+-----------------------+
 | 
				
			||||||
| Ubuntu Linux 14.04 LTS           | 2.7, 3.4, 3.5, 3.6            |x86-64                 |
 | 
					| Ubuntu Linux 14.04 LTS           | 2.7, 3.5, 3.6                 |x86-64                 |
 | 
				
			||||||
|                                  +-------------------------------+-----------------------+
 | 
					|                                  +-------------------------------+-----------------------+
 | 
				
			||||||
|                                  | 2.7                           |x86                    |
 | 
					|                                  | 2.7                           |x86                    |
 | 
				
			||||||
+----------------------------------+-------------------------------+-----------------------+
 | 
					+----------------------------------+-------------------------------+-----------------------+
 | 
				
			||||||
| Windows Server 2012 R2           | 2.7, 3.4, 3.5, 3.6, 3.7       |x86, x86-64            |
 | 
					| Windows Server 2012 R2           | 2.7, 3.5, 3.6, 3.7            |x86, x86-64            |
 | 
				
			||||||
|                                  +-------------------------------+-----------------------+
 | 
					|                                  +-------------------------------+-----------------------+
 | 
				
			||||||
|                                  | PyPy, 3.7/MinGW               |x86                    |
 | 
					|                                  | PyPy, 3.7/MinGW               |x86                    |
 | 
				
			||||||
+----------------------------------+-------------------------------+-----------------------+
 | 
					+----------------------------------+-------------------------------+-----------------------+
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
# A monkey patch of the base distutils.ccompiler to use parallel builds
 | 
					# A monkey patch of the base distutils.ccompiler to use parallel builds
 | 
				
			||||||
# Tested on 2.7, looks to be identical to 3.3.
 | 
					# Tested on 2.7, looks to be identical to 3.3.
 | 
				
			||||||
# Only applied on Python < 3.5 because otherwise, it conflicts with Python's
 | 
					# Only applied on Python 2.7 because otherwise, it conflicts with Python's
 | 
				
			||||||
# own newly-added support for parallel builds.
 | 
					# own newly-added support for parallel builds.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from __future__ import print_function
 | 
					from __future__ import print_function
 | 
				
			||||||
| 
						 | 
					@ -79,6 +79,6 @@ def install():
 | 
				
			||||||
              "%s processes" % MAX_PROCS)
 | 
					              "%s processes" % MAX_PROCS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# We monkeypatch only versions earlier than 3.5
 | 
					# We monkeypatch Python 2.7
 | 
				
			||||||
if sys.version_info < (3, 5):
 | 
					if sys.version_info.major < 3:
 | 
				
			||||||
    install()
 | 
					    install()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								setup.py
									
									
									
									
									
								
							| 
						 | 
					@ -265,8 +265,8 @@ class pil_build_ext(build_ext):
 | 
				
			||||||
        if self.debug:
 | 
					        if self.debug:
 | 
				
			||||||
            global DEBUG
 | 
					            global DEBUG
 | 
				
			||||||
            DEBUG = True
 | 
					            DEBUG = True
 | 
				
			||||||
        if sys.version_info >= (3, 5) and not self.parallel:
 | 
					        if sys.version_info.major >= 3 and not self.parallel:
 | 
				
			||||||
            # For Python < 3.5, we monkeypatch distutils to have parallel
 | 
					            # For Python 2.7, we monkeypatch distutils to have parallel
 | 
				
			||||||
            # builds. If --parallel (or -j) wasn't specified, we want to
 | 
					            # builds. If --parallel (or -j) wasn't specified, we want to
 | 
				
			||||||
            # reproduce the same behavior as before, that is, auto-detect the
 | 
					            # reproduce the same behavior as before, that is, auto-detect the
 | 
				
			||||||
            # number of jobs.
 | 
					            # number of jobs.
 | 
				
			||||||
| 
						 | 
					@ -774,14 +774,13 @@ try:
 | 
				
			||||||
              "Programming Language :: Python :: 2",
 | 
					              "Programming Language :: Python :: 2",
 | 
				
			||||||
              "Programming Language :: Python :: 2.7",
 | 
					              "Programming Language :: Python :: 2.7",
 | 
				
			||||||
              "Programming Language :: Python :: 3",
 | 
					              "Programming Language :: Python :: 3",
 | 
				
			||||||
              "Programming Language :: Python :: 3.4",
 | 
					 | 
				
			||||||
              "Programming Language :: Python :: 3.5",
 | 
					              "Programming Language :: Python :: 3.5",
 | 
				
			||||||
              "Programming Language :: Python :: 3.6",
 | 
					              "Programming Language :: Python :: 3.6",
 | 
				
			||||||
              "Programming Language :: Python :: 3.7",
 | 
					              "Programming Language :: Python :: 3.7",
 | 
				
			||||||
              "Programming Language :: Python :: Implementation :: CPython",
 | 
					              "Programming Language :: Python :: Implementation :: CPython",
 | 
				
			||||||
              "Programming Language :: Python :: Implementation :: PyPy",
 | 
					              "Programming Language :: Python :: Implementation :: PyPy",
 | 
				
			||||||
          ],
 | 
					          ],
 | 
				
			||||||
          python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
 | 
					          python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*",
 | 
				
			||||||
          cmdclass={"build_ext": pil_build_ext},
 | 
					          cmdclass={"build_ext": pil_build_ext},
 | 
				
			||||||
          ext_modules=[Extension("PIL._imaging", ["_imaging.c"])],
 | 
					          ext_modules=[Extension("PIL._imaging", ["_imaging.c"])],
 | 
				
			||||||
          include_package_data=True,
 | 
					          include_package_data=True,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								tox.ini
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								tox.ini
									
									
									
									
									
								
							| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
# and then run "tox" from this directory.
 | 
					# and then run "tox" from this directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[tox]
 | 
					[tox]
 | 
				
			||||||
envlist = py27, py34, py35, py36, py37
 | 
					envlist = py27, py35, py36, py37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[testenv]
 | 
					[testenv]
 | 
				
			||||||
commands =
 | 
					commands =
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -265,7 +265,6 @@ setlocal
 | 
				
			||||||
""" + vc_setup(compiler, bit) + r"""
 | 
					""" + vc_setup(compiler, bit) + r"""
 | 
				
			||||||
set MSVC_VERSION=""" + {
 | 
					set MSVC_VERSION=""" + {
 | 
				
			||||||
    "2008": "9",
 | 
					    "2008": "9",
 | 
				
			||||||
    "2010": "10",
 | 
					 | 
				
			||||||
    "2015": "14"
 | 
					    "2015": "14"
 | 
				
			||||||
}[compiler['vc_version']] + r"""
 | 
					}[compiler['vc_version']] + r"""
 | 
				
			||||||
set RCOMP="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\RC.Exe"
 | 
					set RCOMP="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\RC.Exe"
 | 
				
			||||||
| 
						 | 
					@ -308,7 +307,6 @@ else:
 | 
				
			||||||
    # for compiler in all_compilers():
 | 
					    # for compiler in all_compilers():
 | 
				
			||||||
        # add_compiler(compiler)
 | 
					        # add_compiler(compiler)
 | 
				
			||||||
    add_compiler(compilers[7.0][2008][32], 32)
 | 
					    add_compiler(compilers[7.0][2008][32], 32)
 | 
				
			||||||
    # add_compiler(compilers[7.1][2010][64])
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
with open('build_deps.cmd', 'w') as f:
 | 
					with open('build_deps.cmd', 'w') as f:
 | 
				
			||||||
    f.write("\n".join(script))
 | 
					    f.write("\n".join(script))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,6 @@ PILLOW_DEPENDS_DIR = 'C:\\pillow-depends\\'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pythons = {'27': {'compiler': 7, 'vc': 2008},
 | 
					pythons = {'27': {'compiler': 7, 'vc': 2008},
 | 
				
			||||||
           'pypy2': {'compiler': 7, 'vc': 2008},
 | 
					           'pypy2': {'compiler': 7, 'vc': 2008},
 | 
				
			||||||
           '34': {'compiler': 7.1, 'vc': 2010},
 | 
					 | 
				
			||||||
           '35': {'compiler': 7.1, 'vc': 2015},
 | 
					           '35': {'compiler': 7.1, 'vc': 2015},
 | 
				
			||||||
           '36': {'compiler': 7.1, 'vc': 2015},
 | 
					           '36': {'compiler': 7.1, 'vc': 2015},
 | 
				
			||||||
           '37': {'compiler': 7.1, 'vc': 2015}}
 | 
					           '37': {'compiler': 7.1, 'vc': 2015}}
 | 
				
			||||||
| 
						 | 
					@ -104,24 +103,6 @@ compilers = {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    7.1: {
 | 
					    7.1: {
 | 
				
			||||||
        2010: {
 | 
					 | 
				
			||||||
            64: {
 | 
					 | 
				
			||||||
                'env_version': 'v7.1',
 | 
					 | 
				
			||||||
                'vc_version': '2010',
 | 
					 | 
				
			||||||
                'env_flags': '/x64 /vista',
 | 
					 | 
				
			||||||
                'inc_dir': 'msvcr10-x64',
 | 
					 | 
				
			||||||
                'platform': 'x64',
 | 
					 | 
				
			||||||
                'webp_platform': 'x64',
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            32: {
 | 
					 | 
				
			||||||
                'env_version': 'v7.1',
 | 
					 | 
				
			||||||
                'vc_version': '2010',
 | 
					 | 
				
			||||||
                'env_flags': '/x86 /vista',
 | 
					 | 
				
			||||||
                'inc_dir': 'msvcr10-x32',
 | 
					 | 
				
			||||||
                'platform': 'Win32',
 | 
					 | 
				
			||||||
                'webp_platform': 'x86',
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        2015: {
 | 
					        2015: {
 | 
				
			||||||
            64: {
 | 
					            64: {
 | 
				
			||||||
                'env_version': 'v7.1',
 | 
					                'env_version': 'v7.1',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user