Skip to content

Commit

Permalink
Remove support for setup.py --compiler argument
Browse files Browse the repository at this point in the history
  • Loading branch information
astrofrog committed Nov 11, 2021
1 parent 4fa9dc8 commit 1a3c336
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 107 deletions.
3 changes: 1 addition & 2 deletions extension_helpers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from ._distutils_helpers import get_compiler
from ._openmp_helpers import add_openmp_flags_if_available
from ._setup_helpers import get_extensions, pkg_config
from ._setup_helpers import get_compiler, get_extensions, pkg_config
from ._utils import import_file, write_if_different
from .version import version as __version__
59 changes: 0 additions & 59 deletions extension_helpers/_distutils_helpers.py

This file was deleted.

2 changes: 1 addition & 1 deletion extension_helpers/_openmp_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

from setuptools.command.build_ext import customize_compiler, get_config_var, new_compiler

from ._distutils_helpers import get_compiler
from ._setup_helpers import get_compiler

__all__ = ['add_openmp_flags_if_available']

Expand Down
19 changes: 17 additions & 2 deletions extension_helpers/_setup_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,30 @@
from collections import defaultdict

from setuptools import Extension, find_packages
from setuptools.command.build_ext import new_compiler

from ._distutils_helpers import get_compiler
from ._utils import import_file, walk_skip_hidden

__all__ = ['get_extensions', 'pkg_config']
__all__ = ['get_compiler', 'get_extensions', 'pkg_config']

log = logging.getLogger(__name__)


def get_compiler():
"""
Determines the compiler that will be used to build extension modules.
Returns
-------
compiler : str
The compiler option specified for the build, build_ext, or build_clib
command; or the default compiler for the platform if none was
specified.
"""
return new_compiler().compiler_type


def get_extensions(srcdir='.'):
"""
Collect all extensions from Cython files and ``setup_package.py`` files.
Expand Down
35 changes: 0 additions & 35 deletions extension_helpers/_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,6 @@
__all__ = ['write_if_different', 'import_file']


class _DummyFile(object):
"""A noop writeable object."""

errors = ''

def write(self, s):
pass

def flush(self):
pass


@contextlib.contextmanager
def silence():
"""A context manager that silences sys.stdout and sys.stderr."""

old_stdout = sys.stdout
old_stderr = sys.stderr
sys.stdout = _DummyFile()
sys.stderr = _DummyFile()
exception_occurred = False
try:
yield
except: # noqa
exception_occurred = True
# Go ahead and clean up so that exception handling can work normally
sys.stdout = old_stdout
sys.stderr = old_stderr
raise

if not exception_occurred:
sys.stdout = old_stdout
sys.stderr = old_stderr


if sys.platform == 'win32':
import ctypes

Expand Down
7 changes: 0 additions & 7 deletions extension_helpers/tests/test_distutils_helpers.py

This file was deleted.

9 changes: 8 additions & 1 deletion extension_helpers/tests/test_setup_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import pytest

from .._setup_helpers import get_extensions
from .._setup_helpers import get_compiler, get_extensions
from . import cleanup_import, run_setup

extension_helpers_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) # noqa
Expand All @@ -19,6 +19,13 @@ def teardown_module(module):
os.remove(tmpfile)


POSSIBLE_COMPILERS = ['unix', 'msvc', 'bcpp', 'cygwin', 'mingw32']


def test_get_compiler():
assert get_compiler() in POSSIBLE_COMPILERS


def _extension_test_package(tmpdir, request, extension_type='c',
include_numpy=False):
"""Creates a simple test package with an extension module."""
Expand Down
26 changes: 26 additions & 0 deletions extension_helpers/tests/test_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import os
import time

from .._utils import import_file, write_if_different


def test_import_file(tmpdir):
filename = str(tmpdir / 'spam.py')
with open(filename, 'w') as f:
f.write('magic = 12345')
module = import_file(filename)
assert module.magic == 12345


def test_write_if_different(tmpdir):
filename = str(tmpdir / 'test.txt')
write_if_different(filename, b'abc')
time1 = os.path.getmtime(filename)
time.sleep(0.01)
write_if_different(filename, b'abc')
time2 = os.path.getmtime(filename)
assert time2 == time1
time.sleep(0.01)
write_if_different(filename, b'abcd')
time3 = os.path.getmtime(filename)
assert time3 > time1

0 comments on commit 1a3c336

Please sign in to comment.