diff options
| author | Eric Wieser <wieser.eric@gmail.com> | 2019-06-12 00:05:32 -0700 |
|---|---|---|
| committer | Eric Wieser <wieser.eric@gmail.com> | 2019-06-12 00:20:39 -0700 |
| commit | f89414564743495ca9104400e9ab1a6ba0963e2e (patch) | |
| tree | ac5bca8291ad96904fa34b6089c8832417dc8d31 /numpy/distutils/command | |
| parent | da1bc31213675425c43f025c5fa09869b904b667 (diff) | |
| download | numpy-f89414564743495ca9104400e9ab1a6ba0963e2e.tar.gz | |
MAINT: Use textwrap.dedent for multiline strings
This makes it easier to visually jump between functions.
A couple places have changed to not emit leading whitespace where they previously did. Since this is C code and not fortran, that doesn't matter.
Diffstat (limited to 'numpy/distutils/command')
| -rw-r--r-- | numpy/distutils/command/autodist.py | 136 | ||||
| -rw-r--r-- | numpy/distutils/command/config.py | 143 |
2 files changed, 143 insertions, 136 deletions
diff --git a/numpy/distutils/command/autodist.py b/numpy/distutils/command/autodist.py index 03fe0c64c..9c98b84d8 100644 --- a/numpy/distutils/command/autodist.py +++ b/numpy/distutils/command/autodist.py @@ -3,23 +3,24 @@ """ from __future__ import division, absolute_import, print_function +import textwrap # We put them here since they could be easily reused outside numpy.distutils def check_inline(cmd): """Return the inline identifier (may be empty).""" cmd._check_compiler() - body = """ -#ifndef __cplusplus -static %(inline)s int static_func (void) -{ - return 0; -} -%(inline)s int nostatic_func (void) -{ - return 0; -} -#endif""" + body = textwrap.dedent(""" + #ifndef __cplusplus + static %(inline)s int static_func (void) + { + return 0; + } + %(inline)s int nostatic_func (void) + { + return 0; + } + #endif""") for kw in ['inline', '__inline__', '__inline']: st = cmd.try_compile(body % {'inline': kw}, None, None) @@ -28,15 +29,16 @@ static %(inline)s int static_func (void) return '' + def check_restrict(cmd): """Return the restrict identifier (may be empty).""" cmd._check_compiler() - body = """ -static int static_func (char * %(restrict)s a) -{ - return 0; -} -""" + body = textwrap.dedent(""" + static int static_func (char * %(restrict)s a) + { + return 0; + } + """) for kw in ['restrict', '__restrict__', '__restrict']: st = cmd.try_compile(body % {'restrict': kw}, None, None) @@ -45,72 +47,76 @@ static int static_func (char * %(restrict)s a) return '' + def check_compiler_gcc4(cmd): """Return True if the C compiler is GCC 4.x.""" cmd._check_compiler() - body = """ -int -main() -{ -#if (! defined __GNUC__) || (__GNUC__ < 4) -#error gcc >= 4 required -#endif - return 0; -} -""" + body = textwrap.dedent(""" + int + main() + { + #if (! defined __GNUC__) || (__GNUC__ < 4) + #error gcc >= 4 required + #endif + return 0; + } + """) return cmd.try_compile(body, None, None) def check_gcc_function_attribute(cmd, attribute, name): """Return True if the given function attribute is supported.""" cmd._check_compiler() - body = """ -#pragma GCC diagnostic error "-Wattributes" -#pragma clang diagnostic error "-Wattributes" - -int %s %s(void*); - -int -main() -{ - return 0; -} -""" % (attribute, name) + body = textwrap.dedent(""" + #pragma GCC diagnostic error "-Wattributes" + #pragma clang diagnostic error "-Wattributes" + + int %s %s(void*); + + int + main() + { + return 0; + } + """) % (attribute, name) return cmd.try_compile(body, None, None) != 0 + def check_gcc_function_attribute_with_intrinsics(cmd, attribute, name, code, include): """Return True if the given function attribute is supported with intrinsics.""" cmd._check_compiler() - body = """ -#include<%s> -int %s %s(void) -{ - %s; - return 0; -} - -int -main() -{ - return 0; -} -""" % (include, attribute, name, code) + body = textwrap.dedent(""" + #include<%s> + int %s %s(void) + { + %s; + return 0; + } + + int + main() + { + return 0; + } + """) % (include, attribute, name, code) return cmd.try_compile(body, None, None) != 0 + + def check_gcc_variable_attribute(cmd, attribute): """Return True if the given variable attribute is supported.""" cmd._check_compiler() - body = """ -#pragma GCC diagnostic error "-Wattributes" -#pragma clang diagnostic error "-Wattributes" - -int %s foo; - -int -main() -{ - return 0; -} -""" % (attribute, ) + body = textwrap.dedent(""" + #pragma GCC diagnostic error "-Wattributes" + #pragma clang diagnostic error "-Wattributes" + + int %s foo; + + int + main() + { + return 0; + } + """) % (attribute, ) return cmd.try_compile(body, None, None) != 0 diff --git a/numpy/distutils/command/config.py b/numpy/distutils/command/config.py index 74d6900dc..e9ca7bea8 100644 --- a/numpy/distutils/command/config.py +++ b/numpy/distutils/command/config.py @@ -8,6 +8,7 @@ import os, signal import warnings import sys import subprocess +import textwrap from distutils.command.config import config as old_config from distutils.command.config import LANG_EXT @@ -53,18 +54,18 @@ class config(old_config): self.compiler.initialize() except IOError: e = get_exception() - msg = """\ -Could not initialize compiler instance: do you have Visual Studio -installed? If you are trying to build with MinGW, please use "python setup.py -build -c mingw32" instead. If you have Visual Studio installed, check it is -correctly installed, and the right version (VS 2008 for python 2.6, 2.7 and 3.2, -VS 2010 for >= 3.3). - -Original exception was: %s, and the Compiler class was %s -============================================================================""" \ + msg = textwrap.dedent("""\ + Could not initialize compiler instance: do you have Visual Studio + installed? If you are trying to build with MinGW, please use "python setup.py + build -c mingw32" instead. If you have Visual Studio installed, check it is + correctly installed, and the right version (VS 2008 for python 2.6, 2.7 and 3.2, + VS 2010 for >= 3.3). + + Original exception was: %s, and the Compiler class was %s + ============================================================================""") \ % (e, self.compiler.__class__.__name__) - print ("""\ -============================================================================""") + print(textwrap.dedent("""\ + ============================================================================""")) raise distutils.errors.DistutilsPlatformError(msg) # After MSVC is initialized, add an explicit /MANIFEST to linker @@ -173,31 +174,31 @@ Original exception was: %s, and the Compiler class was %s def check_decl(self, symbol, headers=None, include_dirs=None): self._check_compiler() - body = """ -int main(void) -{ -#ifndef %s - (void) %s; -#endif - ; - return 0; -}""" % (symbol, symbol) + body = textwrap.dedent(""" + int main(void) + { + #ifndef %s + (void) %s; + #endif + ; + return 0; + }""") % (symbol, symbol) return self.try_compile(body, headers, include_dirs) def check_macro_true(self, symbol, headers=None, include_dirs=None): self._check_compiler() - body = """ -int main(void) -{ -#if %s -#else -#error false or undefined macro -#endif - ; - return 0; -}""" % (symbol,) + body = textwrap.dedent(""" + int main(void) + { + #if %s + #else + #error false or undefined macro + #endif + ; + return 0; + }""") % (symbol,) return self.try_compile(body, headers, include_dirs) @@ -208,14 +209,14 @@ int main(void) self._check_compiler() # First check the type can be compiled - body = r""" -int main(void) { - if ((%(name)s *) 0) - return 0; - if (sizeof (%(name)s)) - return 0; -} -""" % {'name': type_name} + body = textwrap.dedent(r""" + int main(void) { + if ((%(name)s *) 0) + return 0; + if (sizeof (%(name)s)) + return 0; + } + """) % {'name': type_name} st = False try: @@ -235,33 +236,33 @@ int main(void) { self._check_compiler() # First check the type can be compiled - body = r""" -typedef %(type)s npy_check_sizeof_type; -int main (void) -{ - static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) >= 0)]; - test_array [0] = 0 - - ; - return 0; -} -""" + body = textwrap.dedent(r""" + typedef %(type)s npy_check_sizeof_type; + int main (void) + { + static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) >= 0)]; + test_array [0] = 0 + + ; + return 0; + } + """) self._compile(body % {'type': type_name}, headers, include_dirs, 'c') self._clean() if expected: - body = r""" -typedef %(type)s npy_check_sizeof_type; -int main (void) -{ - static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) == %(size)s)]; - test_array [0] = 0 - - ; - return 0; -} -""" + body = textwrap.dedent(r""" + typedef %(type)s npy_check_sizeof_type; + int main (void) + { + static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) == %(size)s)]; + test_array [0] = 0 + + ; + return 0; + } + """) for size in expected: try: self._compile(body % {'type': type_name, 'size': size}, @@ -272,17 +273,17 @@ int main (void) pass # this fails to *compile* if size > sizeof(type) - body = r""" -typedef %(type)s npy_check_sizeof_type; -int main (void) -{ - static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) <= %(size)s)]; - test_array [0] = 0 - - ; - return 0; -} -""" + body = textwrap.dedent(r""" + typedef %(type)s npy_check_sizeof_type; + int main (void) + { + static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) <= %(size)s)]; + test_array [0] = 0 + + ; + return 0; + } + """) # The principle is simple: we first find low and high bounds of size # for the type, where low/high are looked up on a log scale. Then, we |
