<div dir="ltr"><div><div>Since there was opposition to just removing the output all the time, I've added a new parameter, 'verbosity' that can be set to 0 to hide the output.  This unfortunately requires a bit of code churn and changes the interface to get_info() (but in a backwards-compatible way).<br>

<br><br>I came up with another option, which is to reuse system_info.verbosity to control whether that output is shown/hidden.  It is already documented as doing so even if that is mostly ignored in the code.<br><br></div>

I've made another PR <a href="https://github.com/numpy/numpy/pull/4387">https://github.com/numpy/numpy/pull/4387</a> to show what I mean.<br><br></div>This would supersede #4081 if accepted.<br></div><div class="gmail_extra">

<br><br><div class="gmail_quote">2013-11-27 13:44 GMT-05:00 Frédéric Bastien <span dir="ltr"><<a href="mailto:nouiz@nouiz.org" target="_blank">nouiz@nouiz.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi,<br>
<br>
After more investigation, I found that there already exist a way to<br>
suppress those message on posix system. So I reused it in the PR. That<br>
way, it was faster, but prevent change in that area. So there is less<br>
change of breaking other syste:<br>
<br>
<a href="https://github.com/numpy/numpy/pull/4081" target="_blank">https://github.com/numpy/numpy/pull/4081</a><br>
<br>
<br>
But it remove the stdout when we run this command:<br>
<br>
numpy.distutils.system_info.get_info("blas_opt")<br>
<br>
But during compilation, we still have the info about what is found:<br>
<br>
atlas_blas_threads_info:<br>
Setting PTATLAS=ATLAS<br>
Setting PTATLAS=ATLAS<br>
customize Gnu95FCompiler<br>
Found executable /usr/bin/gfortran<br>
customize Gnu95FCompiler<br>
customize Gnu95FCompiler using config<br>
compiling '_configtest.c':<br>
<br>
/* This file is generated from numpy/distutils/system_info.py */<br>
void ATL_buildinfo(void);<br>
int main(void) {<br>
  ATL_buildinfo();<br>
  return 0;<br>
}<br>
<br>
C compiler: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O2 -fPIC<br>
<br>
compile options: '-c'<br>
gcc: _configtest.c<br>
gcc -pthread _configtest.o -L/usr/lib64/atlas -lptf77blas -lptcblas<br>
-latlas -o _configtest<br>
success!<br>
removing: _configtest.c _configtest.o _configtest<br>
Setting PTATLAS=ATLAS<br>
  FOUND:<br>
    libraries = ['ptf77blas', 'ptcblas', 'atlas']<br>
    library_dirs = ['/usr/lib64/atlas']<br>
    language = c<br>
    define_macros = [('ATLAS_INFO', '"\\"3.8.3\\""')]<br>
    include_dirs = ['/usr/include']<br>
<br>
  FOUND:<br>
    libraries = ['ptf77blas', 'ptcblas', 'atlas']<br>
    library_dirs = ['/usr/lib64/atlas']<br>
    language = c<br>
    define_macros = [('ATLAS_INFO', '"\\"3.8.3\\""')]<br>
    include_dirs = ['/usr/include']<br>
<br>
non-existing path in 'numpy/lib': 'benchmarks'<br>
lapack_opt_info:<br>
lapack_mkl_info:<br>
mkl_info:<br>
  libraries mkl,vml,guide not found in<br>
['/opt/lisa/os_v2/common/Canopy_64bit/User/lib', '/usr/local/lib64',<br>
'/usr/local/lib', '/usr/lib64', '/usr/lib']<br>
  NOT AVAILABLE<br>
<br>
  NOT AVAILABLE<br>
<br>
atlas_threads_info:<br>
Setting PTATLAS=ATLAS<br>
  libraries ptf77blas,ptcblas,atlas not found in<br>
/opt/lisa/os_v2/common/Canopy_64bit/User/lib<br>
  libraries lapack_atlas not found in<br>
/opt/lisa/os_v2/common/Canopy_64bit/User/lib<br>
  libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib64<br>
  libraries lapack_atlas not found in /usr/local/lib64<br>
  libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib<br>
  libraries lapack_atlas not found in /usr/local/lib<br>
  libraries lapack_atlas not found in /usr/lib64/atlas<br>
numpy.distutils.system_info.atlas_threads_info<br>
Setting PTATLAS=ATLAS<br>
Setting PTATLAS=ATLAS<br>
  FOUND:<br>
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']<br>
    library_dirs = ['/usr/lib64/atlas']<br>
    language = f77<br>
    define_macros = [('ATLAS_INFO', '"\\"3.8.3\\""')]<br>
    include_dirs = ['/usr/include']<br>
<br>
  FOUND:<br>
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']<br>
    library_dirs = ['/usr/lib64/atlas']<br>
    language = f77<br>
    define_macros = [('ATLAS_INFO', '"\\"3.8.3\\""')]<br>
    include_dirs = ['/usr/include']<br>
<span class="HOEnZb"><font color="#888888"><br>
Frédéric<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Fri, Nov 22, 2013 at 4:26 PM, Frédéric Bastien <<a href="mailto:nouiz@nouiz.org">nouiz@nouiz.org</a>> wrote:<br>
> I didn't forgot this, but I got side tracked. Here is the Theano code<br>
> I would like to try to use to replace os.system:<br>
><br>
> <a href="https://github.com/Theano/Theano/blob/master/theano/misc/windows.py" target="_blank">https://github.com/Theano/Theano/blob/master/theano/misc/windows.py</a><br>
><br>
> But I won't be able to try this before next week.<br>
><br>
> Fred<br>
><br>
> On Fri, Nov 15, 2013 at 5:49 PM, David Cournapeau <<a href="mailto:cournape@gmail.com">cournape@gmail.com</a>> wrote:<br>
>><br>
>><br>
>><br>
>> On Fri, Nov 15, 2013 at 7:41 PM, Robert Kern <<a href="mailto:robert.kern@gmail.com">robert.kern@gmail.com</a>> wrote:<br>
>>><br>
>>> On Fri, Nov 15, 2013 at 7:28 PM, David Cournapeau <<a href="mailto:cournape@gmail.com">cournape@gmail.com</a>><br>
>>> wrote:<br>
>>> ><br>
>>> > On Fri, Nov 15, 2013 at 6:21 PM, Charles R Harris<br>
>>> > <<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>> wrote:<br>
>>><br>
>>> >> Sure, give it a shot. Looks like subprocess.Popen was intended to<br>
>>> >> replace os.system in any case.<br>
>>> ><br>
>>> > Except that output is not 'real time' with straight Popen, and doing so<br>
>>> > reliably on every platform (cough - windows - cough) is not completely<br>
>>> > trivial. You also have to handle buffered output, etc... That code is very<br>
>>> > fragile, so this would be quite a lot of testing to change, and I am not<br>
>>> > sure it worths it.<br>
>>><br>
>>> It doesn't have to be "real time". Just use .communicate() and print out<br>
>>> the stdout and stderr to their appropriate streams after the subprocess<br>
>>> finishes.<br>
>><br>
>><br>
>> Indeed, it does not have to be, but that's useful for debugging compilation<br>
>> issues (not so much for numpy itself, but for some packages which have files<br>
>> that takes a very long time to build, like scipy.sparsetools or bottleneck).<br>
>><br>
>> That's a minor point compared to the potential issues when building on<br>
>> windows, though.<br>
>><br>
>> David<br>
>><br>
>> _______________________________________________<br>
>> NumPy-Discussion mailing list<br>
>> <a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
>> <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
>><br>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
</div></div></blockquote></div><br></div>