summaryrefslogtreecommitdiff
path: root/numpy/distutils/command
diff options
context:
space:
mode:
authorEric Wieser <wieser.eric@gmail.com>2019-06-12 00:05:32 -0700
committerEric Wieser <wieser.eric@gmail.com>2019-06-12 00:20:39 -0700
commitf89414564743495ca9104400e9ab1a6ba0963e2e (patch)
treeac5bca8291ad96904fa34b6089c8832417dc8d31 /numpy/distutils/command
parentda1bc31213675425c43f025c5fa09869b904b667 (diff)
downloadnumpy-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.py136
-rw-r--r--numpy/distutils/command/config.py143
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