summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Madden <jamadden@gmail.com>2020-01-20 05:44:13 -0600
committerJason Madden <jamadden@gmail.com>2020-01-20 07:02:51 -0600
commit3c0f7dcc4a6efed580af517431096200ebeeadb9 (patch)
tree2db43826fd07f32ff5cee28a7e71d25f13f8960f
parentdc0de85e6c0b2dc8014839551397969faba9e261 (diff)
downloadzope-i18nmessageid-3c0f7dcc4a6efed580af517431096200ebeeadb9.tar.gz
Drop the use of the deprecated setuptools Features
-rw-r--r--setup.py42
1 files changed, 20 insertions, 22 deletions
diff --git a/setup.py b/setup.py
index b81e53d..6b0619e 100644
--- a/setup.py
+++ b/setup.py
@@ -22,39 +22,37 @@
import os
import sys
-from setuptools import setup, find_packages, Extension, Feature
from distutils.command.build_ext import build_ext
from distutils.errors import CCompilerError
from distutils.errors import DistutilsExecError
from distutils.errors import DistutilsPlatformError
import platform
+from setuptools import setup, find_packages, Extension
+
py_impl = getattr(platform, 'python_implementation', lambda: None)
is_pypy = py_impl() == 'PyPy'
is_jython = 'java' in sys.platform
codeoptimization_c = os.path.join('src', 'zope', 'i18nmessageid',
"_zope_i18nmessageid_message.c")
-codeoptimization = Feature(
- "Optional code optimizations",
- standard=True,
- ext_modules=[Extension(
+codeoptimization = [
+ Extension(
"zope.i18nmessageid._zope_i18nmessageid_message",
[os.path.normcase(codeoptimization_c)]
- )])
+ ),
+]
extra = {
- 'extras_require': {
- 'testing': ['nose', 'coverage'],
- 'docs': ['Sphinx'],
- },
+
}
+ext_modules = []
if not is_pypy and not is_jython:
# Jython cannot build the C optimizations, while on PyPy they are
# anti-optimizations (the C extension compatibility layer is known-slow,
# and defeats JIT opportunities).
- extra['features'] = {'codeoptimization': codeoptimization}
+ ext_modules = codeoptimization
def read(*rnames):
@@ -69,20 +67,14 @@ class optional_build_ext(build_ext):
def run(self):
try:
build_ext.run(self)
-
- except DistutilsPlatformError:
- # The sys.exc_info()[1] is to preserve compatibility with both
- # Python 2.5 and 3.x, which is needed in setup.py.
- self._unavailable(sys.exc_info()[1])
+ except DistutilsPlatformError as e:
+ self._unavailable(e)
def build_extension(self, ext):
try:
build_ext.build_extension(self, ext)
-
- except (CCompilerError, DistutilsExecError):
- # The sys.exc_info()[1] is to preserve compatibility with both
- # Python 2.5 and 3.x, which is needed in setup.py.
- self._unavailable(sys.exc_info()[1])
+ except (CCompilerError, DistutilsExecError) as e:
+ self._unavailable(e)
def _unavailable(self, e):
# Write directly to stderr to preserve compatibility with both
@@ -141,5 +133,11 @@ setup(
test_suite='zope.i18nmessageid.tests.test_suite',
zip_safe=False,
cmdclass={'build_ext': optional_build_ext},
- **extra
+ ext_modules=ext_modules,
+ extras_require={
+ 'testing': [
+ 'nose', 'coverage'
+ ],
+ 'docs': ['Sphinx'],
+ },
)