From b595ef01168e94b9d32d571c3d667329483b7e19 Mon Sep 17 00:00:00 2001 From: Dalton Serey Date: Fri, 18 Mar 2022 09:41:28 -0300 Subject: [PATCH 1/4] fix Iterable import path --- pyminifier/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyminifier/__init__.py b/pyminifier/__init__.py index 0e61063..63f7ccd 100644 --- a/pyminifier/__init__.py +++ b/pyminifier/__init__.py @@ -68,7 +68,7 @@ # Import built-in modules import os, sys, re, io from optparse import OptionParser -from collections import Iterable +from collections.abc import Iterable # Import our own modules from . import minification From 9d088e1360fb5fc2084943592a8a8bf2c43085df Mon Sep 17 00:00:00 2001 From: Dalton Serey Date: Fri, 18 Mar 2022 09:43:06 -0300 Subject: [PATCH 2/4] remove unnecessary/offending code in setup.py The code removed was only necessary to support Python 2. Furthermore, because setuptools no longer support use_2to3, the code became a problem for installation procedures that use setuptools, such as pip. This should fix a few issues related to the installation procedures. --- setup.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/setup.py b/setup.py index 65d80fb..5ebe7b1 100755 --- a/setup.py +++ b/setup.py @@ -2,6 +2,7 @@ import pyminifier from setuptools import setup from distutils.command.install import INSTALL_SCHEMES +from distutils.command.build_py import build_py for scheme in INSTALL_SCHEMES.values(): scheme['data'] = scheme['purelib'] @@ -14,18 +15,8 @@ major = sys.version_info.major if major == 2: - from distutils.command.build_py import build_py -elif major == 3: - extra['use_2to3'] = True # Automatically convert to Python 3; love it! - try: - from distutils.command.build_py import build_py_2to3 as build_py - except ImportError: - print("Python 3.X support requires the 2to3 tool.") - print( - "It normally comes with Python 3.X but (apparenty) not on your " - "distribution.\nPlease find out what package you need to get 2to3" - "and install it.") - sys.exit(1) + print("Python 2 is no longer supported.") + sys.exit(1) cmdclass = {'build_py': build_py} From 342daa24e93e983751a22612a33cc44699bc557a Mon Sep 17 00:00:00 2001 From: Dalton Serey Date: Fri, 18 Mar 2022 10:02:03 -0300 Subject: [PATCH 3/4] remove distutils code from setup.py This commit removes distutils code in setup.py. The distutils package is deprecated and slated for removal in Python 3.12. The removal of this code doesn't affect the installation procedures, using pip. --- setup.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/setup.py b/setup.py index 5ebe7b1..62bbaaf 100755 --- a/setup.py +++ b/setup.py @@ -1,13 +1,6 @@ import sys import pyminifier from setuptools import setup -from distutils.command.install import INSTALL_SCHEMES -from distutils.command.build_py import build_py - -for scheme in INSTALL_SCHEMES.values(): - scheme['data'] = scheme['purelib'] - -extra = {} if isinstance(sys.version_info, tuple): major = sys.version_info[0] @@ -18,14 +11,11 @@ print("Python 2 is no longer supported.") sys.exit(1) -cmdclass = {'build_py': build_py} - setup( name="pyminifier", version=pyminifier.__version__, description="Python code minifier, obfuscator, and compressor", author=pyminifier.__author__, - cmdclass=cmdclass, author_email="daniel.mcdougall@liftoffsoftware.com", url="https://github.com/liftoff/pyminifier", license="Proprietary", @@ -54,5 +44,4 @@ ], }, test_suite = "tests", - **extra ) From 9f26cfc60603b52dc2d0a293ec0432e192ce5c01 Mon Sep 17 00:00:00 2001 From: Dalton Serey Date: Fri, 18 Mar 2022 10:19:44 -0300 Subject: [PATCH 4/4] apply selected 2to3 suggested changes --- pyminifier/analyze.py | 5 +---- pyminifier/minification.py | 5 +---- pyminifier/obfuscate.py | 5 +---- pyminifier/token_utils.py | 5 +---- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/pyminifier/analyze.py b/pyminifier/analyze.py index e1968d8..c853521 100644 --- a/pyminifier/analyze.py +++ b/pyminifier/analyze.py @@ -6,10 +6,7 @@ # Import builtins import os, sys, re, tokenize, keyword -try: - import cStringIO as io -except ImportError: # Ahh, Python 3 - import io +import io # Globals py3 = False diff --git a/pyminifier/minification.py b/pyminifier/minification.py index 915337c..54e4131 100644 --- a/pyminifier/minification.py +++ b/pyminifier/minification.py @@ -6,10 +6,7 @@ # Import built-in modules import re, tokenize, keyword -try: - import cStringIO as io -except ImportError: # We're using Python 3 - import io +import io # Import our own modules from . import analyze, token_utils diff --git a/pyminifier/obfuscate.py b/pyminifier/obfuscate.py index a54455a..7c15a6d 100755 --- a/pyminifier/obfuscate.py +++ b/pyminifier/obfuscate.py @@ -13,12 +13,9 @@ from . import analyze from . import token_utils -if not isinstance(sys.version_info, tuple): - if sys.version_info.major == 3: - unichr = chr # So we can support both 2 and 3 try: - unichr(0x10000) # Will throw a ValueError on narrow Python builds + chr(0x10000) # Will throw a ValueError on narrow Python builds HIGHEST_UNICODE = 0x10FFFF # 1114111 except: HIGHEST_UNICODE = 0xFFFF # 65535 diff --git a/pyminifier/token_utils.py b/pyminifier/token_utils.py index 577b174..c7afa4c 100644 --- a/pyminifier/token_utils.py +++ b/pyminifier/token_utils.py @@ -6,10 +6,7 @@ """ import tokenize -try: - import cStringIO as io -except ImportError: # We're using Python 3 - import io +import io def untokenize(tokens): """