Numpy: рдХрднреА-рдХрднреА, supress_warnings рдХреЛ рдЗрд╕рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╛рдж рдЖрддреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рджрд┐рд╕ре░ 2016  ┬╖  60рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рд╕реНрдХрд┐рдореЗрдЬ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдХрднреА-рдХрднреА рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/build/skimage-0.12.3/debian/tmp/usr/lib/python2.7/dist-packages/skimage/transform/tests/test_integral.py", line 46, in test_vectorized_integrate
    assert_equal(expected, integrate(s, r0, c0, r1, c1))  # test deprecated
  File "/build/skimage-0.12.3/debian/tmp/usr/lib/python2.7/dist-packages/skimage/transform/integral.py", line 86, in integrate
    warn("The syntax 'integrate(ii, r0, c0, r1, c1)' is "
  File "/build/skimage-0.12.3/debian/tmp/usr/lib/python2.7/dist-packages/skimage/_shared/_warnings.py", line 16, in warn
    warnings.warn(message, stacklevel=stacklevel)
  File "/usr/lib/python2.7/dist-packages/numpy/testing/utils.py", line 2199, in _showwarning
    self._orig_show(message, category, filename, lineno,
AttributeError: 'suppress_warnings' object has no attribute '_orig_show'

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред

00 - Bug numpy.testing

рд╕рднреА 60 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдореНрдо, рдереЛрдбрд╝рд╛ рдЕрдЬреАрдмред рдХреНрдпрд╛ рд╕реНрдХрд┐рдореИрдЬ рдЯреЗрд╕реНрдЯ рдореЗрдВ рдХреБрдЫ (рдЕрдЬреАрдм) рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдкрд░реАрдХреНрд╖рдг рдХреЛ рдмрд╣реБрдд рдмреБрд░реА рддрд░рд╣ рд╕реЗ рддреЛрдбрд╝ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдореЗрдВ рдзрд╛рдЧрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рдХрдард┐рдирд╛рдИ рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдФрд░ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрд╕реНрдЯ рд░рди рдХреЗ рд╕рдЯреАрдХ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВред

рдЪреВрдБрдХрд┐ рдпрд╣рд╛рдБ рдХреЛрдИ assert_warns рдпрд╛ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдПрдХрд▓ suppress_warnings рдкреНрд░рд╕рдВрдЧ рдЬреАрд╡рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдХрд┐ рд╕рдмрд╕реЗ рдмрд╛рд╣рд░реА рдХреНрд╖реЗрддреНрд░ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдВрдХреЛ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдзрд╛рд╡рдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХрд┐рдо рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛)ред рдЕрдм рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рдХреНрдпреЛрдВ рд╣реВрдВ, рдХреНрдпрд╛ _orig_show рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреЗрд╡рд▓ рддрднреА рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рд╕рдВрджрд░реНрдн рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рд╣реЛред рдЙрд╕ рд╕рдордп warnings.showwarning рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрд░рд╛рдиреЗ рдореВрд▓реНрдп рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдереНрд░реЗрдбреНрд╕ рд╣реИрдВ, рддреЛ рдмреЗрд╢рдХ рдкреВрд░реА рдЪреЗрддрд╛рд╡рдиреА рд╕рд╛рдорд╛рди рдЯреВрдЯ рдЬрд╛рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдереНрд░реЗрдб 1: рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ -> рд╕рд╛рдорд╛рдиреНрдп рдЪреЗрддрд╛рд╡рдиреА рдореБрджреНрд░рдг рдХреА рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИ
рдереНрд░реЗрдб 2: рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ -> рдереНрд░реЗрдб 1 рдЪреЗрддрд╛рд╡рдиреА рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ
рдереНрд░реЗрдб 1: рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ -> рд╕рд╛рдорд╛рдиреНрдп рдЪреЗрддрд╛рд╡рдиреА рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдереНрд░реЗрдб 2: рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджрд░реНрдн рдореМрдЬреВрдж рд╣реИ -> рдереНрд░реЗрдб 1 рдХреЗ рдЪреЗрддрд╛рд╡рдиреА рд╣реИрдВрдбрд▓рд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ -> рдХрдмреВрдоред

Btwред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдБ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ " __warning_registry__ рд╕рд╛рдорд╛рди рдХреЛ рд╕реНрдХрд┐рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рд╣реИ, рджрдорди рдЪреЗрддрд╛рд╡рдиреА рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рд╣реИ рдЬреЛ рдПрдХ рд╕рдорд╛рди рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдЬреЛрдбрд╝рддрд╛ рд╣реИ), рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдореБрдЭреЗ рдмрд╕ рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реБрдИ рдЬрдм рдореИрдВрдиреЗ рдбреЗрдмрд┐рдпрди рдХреЗ рд▓рд┐рдП рд╕реНрдХрд┐рдореЗрдЬ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП scikit-image / scikit-image # 2412 рдЦреЛрд▓рд╛ред

рдмрд╕ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП: рдХрднреА-рдХрднреА, рдореБрдЭреЗ рд╕реНрдХрд┐рдореЗрдЬ рдХреА рдХрд┐рд╕реА рднреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рднреА рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ:

ERROR: test suite for <module 'skimage.transform.tests' from '/build/skimage-0.12.3/debian/tmp/usr/lib/python3/dist-packages/skimage/transform/tests/__init__.py'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/nose/suite.py", line 229, in run
    self.tearDown()
  File "/usr/lib/python3/dist-packages/nose/suite.py", line 352, in tearDown
    self.teardownContext(ancestor)
  File "/usr/lib/python3/dist-packages/nose/suite.py", line 368, in teardownContext
    try_run(context, names)
  File "/usr/lib/python3/dist-packages/nose/util.py", line 453, in try_run
    inspect.getargspec(func)
  File "/usr/lib/python3.5/inspect.py", line 1040, in getargspec
    stacklevel=2)
  File "/usr/lib/python3/dist-packages/numpy/testing/utils.py", line 2199, in _showwarning
    self._orig_show(message, category, filename, lineno,
AttributeError: 'suppress_warnings' object has no attribute '_orig_show'

рдЕрдЬрдЧрд░, рд╕реБрдиреНрди, рдЖрджрд┐ рдХреЗ рдХреМрди рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдЖрдк рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдиреЗрдореНрдкреА 1.12 ~ рдЖрд░рд╕реА ~ рдмреАрдЯрд╛ 1, рдкрд╛рдпрдерди 2.7 рдФрд░ 3.5
(рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реА рдЧрд▓рддреА: рдЖрд░рд╕реА рдХреА рдЬрд╛рдВрдЪ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реБрдИ)

рд╣рдореНрдо, рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдБ .... рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпреЛрдВ рдереНрд░реЗрдбрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдирд╕реНрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдпрд╛ catch_warning рдЧрд▓рдд рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐ рднреА рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА (рд╕рд╛рдорд╛рди рд╕рд╣рд┐рдд) suppress_warning )ред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдмрд┐рд▓реНрдб рдХреЛ рджреЛ рдмрд╛рд░ рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓рд╛рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬрдЧрд╣реЛрдВ рдкрд░ рдкреЙрдк рдЕрдк рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ)ред

@ рддрд┐рд▓рдХ рддреБрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреИрд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реЛ?

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рд╕реЗ рдирдХрд▓:

#!/bin/sh
set -efu

pys="$(pyversions -rv 2>/dev/null)"
pkgbuild=${pkgbuild:-no}

srcdir=$PWD

for py in $pys; do
    echo "=== python$py ==="
    if [ "$pkgbuild" = "yes" ]; then
        export PYTHONPATH="$srcdir/debian/tmp/usr/lib/python$py/dist-packages"
        cd "$srcdir/build/"
    else
        cd "$ADTTMP"
    fi

    xvfb-run -a python$py /usr/bin/nosetests -s -v --exclude test_tools.py skimage 2>&1
done

xvfb-run рд╡рд╣рд╛рдБ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛ X11 рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

Hmmmpf, рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдирд╛рдХ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ? рдирд╛рдХ рдореБрдЭреЗ рднреНрд░рдорд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░ рд░рд╣рд╛ рд╣реИ .... рдпрд╛ рдпрд╣ рд╕рднреА рдХреЗ рдмрд╛рдж рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣реЗред

рдореЗрд░реЗ nosetests рдореИрди рдкреЗрдЬ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ

       --processes=NUM
              Spread  test run among this many processes. Set a number equal to the number of processors or cores in your machine for best results. Pass a negative
              number to have the number of processes automatically set to the number of cores. Passing 0 means to disable parallel testing.  Default  is  0  unless
              NOSE_PROCESSES is set. [NOSE_PROCESSES]

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╕рд╛рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ teardownContext рдХреЛрдИ рджреВрд░рд╕реНрде рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ ?!

рдирд╣реАрдВ, рдореИрдВ рд╢рд╛рдпрдж рдореВрд░реНрдЦ рд╣реВрдВред рджрдмрд╛рдиреЗ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рд╕рдВрджрд░реНрдн warnings.showwarning рдкрд╣рд▓реЗ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрджреЗрд╣ рднреА рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдФрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпрд╛ рдФрд░ рдХреНрдпрд╛ :)ред

рдЦреИрд░, рдореИрдВ 33 рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдХрд┐рдореЗрдЬ-0.9.3 рдХреЗ рд╕рд╛рде рджреЗрдЦрддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдкреАрдЖрдИрдПрд▓ рдпрд╛ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рд╕реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЕрдиреНрдп рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ?

@charris рд╕рдорд╕реНрдпрд╛ 0.12.3 рдХреЗ рд▓рд┐рдП рдмрддрд╛рдИ рдЧрдИ рд╣реИ, 0.9.3 рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред :)

рдареАрдХ рд╣реИ, рдЕрдВрдд рдореЗрдВ рдКрдкрд░ рдХреА рдУрд░ рд╕реЗ рдиреАрдЪреЗ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдЕрдм 39 рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдПрдХ рдЯрди рдХреА рдбреЗрдкреНрд░рд┐рд╕рд┐рдПрд╢рдиред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд▓рдЧрддреА рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╡реЗрдЯрд▓ рдХреЗ рдмрдЬрд╛рдп рдХреНрдпреВрдЯреА рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореБрдЭреЗ рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

python -c'import skimage; skimage.test()'

nosetests рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдирд┐рдХреНрд╖реЗрдк рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВред рд╣рдо рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рдПрдкреАрдЖрдИ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдПрдХ рдкрджрд╛рд╡рдирддрд┐ рдХреА рдЙрдореНрдореАрдж рд╣реЛред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ (scikit-image) рдмрдЧ рдЯреНрд░реИрдХрд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдХреГрдкрд╛ рдХрд░реЗрдВрдЧреЗ?

@sciunto рдбреЙрдХреНрд╕ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЙрд╕реА рдЬрдЧрд╣ рджреЗрдЦрддрд╛ рд╣реВрдВред рдкрд░реАрдХреНрд╖рдг рд╣реИ

def test_vectorized_integrate():
    r0 = np.array([12, 0, 0, 10, 0, 10, 30])
    c0 = np.array([10, 0, 10, 0, 0, 10, 31])
    r1 = np.array([23, 19, 19, 19, 0, 10, 49])
    c1 = np.array([19, 19, 19, 19, 0, 10, 49])

    expected = np.array([x[12:24, 10:20].sum(),
                         x[:20, :20].sum(),
                         x[:20, 10:20].sum(),
                         x[10:20, :20].sum(),
                         x[0,0],
                         x[10, 10],
                         x[30:, 31:].sum()])
    start_pts = [(r0[i], c0[i]) for i in range(len(r0))]
    end_pts = [(r1[i], c1[i]) for i in range(len(r0))]
    assert_equal(expected, integrate(s, r0, c0, r1, c1))  # test deprecated
    assert_equal(expected, integrate(s, start_pts, end_pts))

# test deprecated рдЯрд┐рдкреНрдкрдгреА рдореБрдЭреЗ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдкрд░реАрдХреНрд╖рдг рдХреЛ рдХреБрдЫ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА suppress_warnings рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдереЛрдбрд╝рд╛ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА, рдХрд░

$ python skimage/transform/tests/test_integral.py

рдЬреЛ NumPy run_module_suite рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ

======================================================================
ERROR: skimage.transform.tests.test_integral.test_vectorized_integrate
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/home/charris/Workspace/scikit-image/skimage/transform/tests/test_integral.py", line 46, in test_vectorized_integrate
    assert_equal(expected, integrate(s, r0, c0, r1, c1))  # test deprecated
  File "/home/charris/Workspace/scikit-image/skimage/transform/integral.py", line 86, in integrate
    warn("The syntax 'integrate(ii, r0, c0, r1, c1)' is "
  File "/home/charris/Workspace/scikit-image/skimage/_shared/_warnings.py", line 16, in warn
    warnings.warn(message, stacklevel=stacklevel)
UserWarning: The syntax 'integrate(ii, r0, c0, r1, c1)' is deprecated, and will be phased out in release 0.14. The new syntax is 'integrate(ii, (r0, c0), (r1, c1))'.

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ scitit-image рдореЗрдВ skimage/_shared/_warnings.py рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рд╣реИред рдпрд╣ suppress_warnings рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ UserWarning рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп DeprecationWarning рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ

$ nosetests-2.7 skimage/transform/tests/test_integral.py |& grep orig_show

рдЬрд╣рд╛рдБ рддрдХ

$ nosetests-2.7 skimage/transform/tests/ |& grep orig_show

рдЗрд╕реЗ рд▓рдЧрднрдЧ 25% рд╕рдордп рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕реНрд░реЛрдд рдХрд╣реАрдВ рдФрд░ рд╣реИ рдФрд░ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рд╛ рдЗрд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреА рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, skimage/transform/tests/test_geometric.py рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ expected_warnings рдФрд░ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реЛрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдЕрдм рдореБрдЭреЗ test_parallel рдбреЗрдХреЛрд░реЗрдЯрд░, https://github.com/scikit-image/scikit-image/blob/master/skimage/_sared/testing.py рдкрд░ рд╕рдВрджреЗрд╣ рд╣реИред рдпрд╣ рджреЛ рдереНрд░реЗрдбреНрд╕ рдХреЛ рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ test_parallel рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реВрдВ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдФрд░ рдЕрдм рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ред рд╣рдореНрдо ... рд╢рд╛рдпрдж рдпрд╣ рднреА рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рд╣рдореНрдо, test_parallel рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ, рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреЗ рдЕрд╕рдВрднрд╡ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

test_hough_transform.py рдХреБрдЫ рджреАрдХреНрд╖рд╛рд░реНрдереА рд▓рдЧрддрд╛ рд╣реИред рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ test_integral.py рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдкрд╣рд▓реЗ рд╣реИ?

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ test_hough_transform.py рдореЗрдВ рдЗрд╕ рдкрд░реАрдХреНрд╖рд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ

@test_parallel()
def test_hough_circle():
    # Prepare picture
    img = np.zeros((120, 100), dtype=int)
    radius = 20
    x_0, y_0 = (99, 50)
    y, x = circle_perimeter(y_0, x_0, radius)
    img[x, y] = 1

    out1 = tf.hough_circle(img, radius)
    out2 = tf.hough_circle(img, [radius])
    assert_equal(out1, out2)
    out = tf.hough_circle(img, np.array([radius], dtype=np.intp))
    assert_equal(out, out1)
    x, y = np.where(out[0] == out[0].max())
    assert_equal(x[0], x_0)
    assert_equal(y[0], y_0)

рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдореЗрдВ

    assert_equal(out1, out2)

# or

    assert_equal(out, out1)

рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред

рдЗрд╕реА рддрд░рд╣, @parallel рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред рддреЛ рдЕрдкрд╢реЙрдЯ рдпрд╣ рд╣реИ рдХрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде assert_equal рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдзрд╛рдЧреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред

рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдореБрдЦрд░ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди ".*NAT ==" рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ assert_equal рдЪреЗрддрд╛рд╡рдиреА рджрдорди (рдФрд░ рдЗрд╕ рддрд░рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рд╕рдорд░реНрдерди рдереНрд░реЗрдбрд┐рдВрдЧ)ред

рдЕрдЪреНрдЫрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдиреАрдЪреЗ рдЪрдХ!

рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реЛрдЧреАред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреНрдп рд╕реБрдиреНрди рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдзрд╛рдЧрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ?

рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рд╕рд╛рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ np.errstate рд╢рд╛рдпрдж рдереНрд░реЗрдбрд╕реЗрдлрд╝ рд╣реИ?

рдЗрд╕ рдЕрдЪреНрдЫреА рдЬрд╛рдВрдЪ @charris рдФрд░ @seberg рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рд╣рдореНрдо, рдореБрдЭреЗ рдпрд╣ рдереЛрдбрд╝рд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд▓рдЧрддрд╛ рд╣реИред рдЙрди рджрдордиреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЬрд╣рд╛рдВ рд╕реЗ рд╡реЗ рдмрд╣рд╛рд╡ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдВрднрд╡рдд: рдареАрдХ рд╣реИ (рд╢рд╛рдпрдж рдХреНрд▓реАрдирд░ рднреА), рд▓реЗрдХрд┐рди рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧрдлрд┐рдХреНрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред рддреБрд▓рдирд╛ рдкреНрд░рдХрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдПрдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рднреА рд▓реЙрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдареАрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ assert_equal рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ NaT рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдиреЛрдЯ NaT рдХреЛ int64 рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп min_int64 рд╣реИред

рдУрд╣, рд╕рдЪ рд╣реИ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ NaT рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрд╖реНрдЯрдкреНрд░рдж (рдХреНрдпреЛрдВрдХрд┐ NaT рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рдХрдард┐рди рдирд╣реАрдВ рд╣реИред рдЕрдиреНрдп рд╕рд░рдгреА рддреБрд▓рдирд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЗрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдХреНрдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ)ред

рдореБрдЦрд░рддрд╛ рдХреЗ рд▓рд┐рдП NaT рддрд░реНрдХ рдЬреЛрдбрд╝рдирд╛ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмреИрдХрдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдЬрдмрдХрд┐ suppress_warnings рдирдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд░реЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдЦреБрдж рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереАред

рд╣рдореЗрдВ рдЕрднреА рднреА isnat рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рд╢рд╛рдпрдж datetime/timedelta isnan ред

рд╣рд╛рдВ, isnat рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣рдордд рд╣реИрдВред рд╡рд╣рд╛рдБ рднреА рджреЛ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдЬрд╣рд╛рдБ accurs рд╣реИ: timedelta64 рдФрд░ datetime64 ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ NaT рдорд╛рди рдХрд╣реАрдВ рднреА рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо рд╕рдВрднрд╡рддрдГ np.nat рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ ndarraytypes.h ред

@charris , рдЪрдХ, рдЗрд╕ рдкрд░ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рд▓реЗрдирд╛ рджреЗрдирд╛ рд╣реИ, рдмрд▓реНрдХрд┐ np.isnat рдмрдирд╛рдПрдБ рдпрд╛ isnan рдореЗрдВ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдФрд░ рдЯрд╛рдЗрдордбреЗрд▓рдЯрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ?

рд╣рдореНрдо, рдпрд╣ рд╕рдм isnan рдореЗрдВ рдбрд╛рд▓рдирд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╢рд╛рдпрдж рдмрд╛рдж рдореЗрдВ? @njsmith @juliantaylor рд╡рд┐рдЪрд╛рд░?

@shoyer рдХреА рднреА рд░рд╛рдп рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореИрдВрдиреЗ рдЕрднреА isnat , рд▓реЗрдХрд┐рди рдореИрдВ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рднреА рд╕рдордп рдХреЗ рд╕рд╛рдорд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реИ, рддреЛ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдпрдж рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдореЗрдВ рдПрдХ рдЕрдЬрдЧрд░ isnat рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд▓рдЧ рдХрд░рдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ( рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо рджреВрд╕рд░реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдФрд░ рдЕрдзрд┐рдХ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВрдЧреА, рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╢рд╛рдпрдж рдХреБрдЫ 1. рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЗ рд╕рд╛рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ 2. рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдЪреЗрддрд╛рд╡рдиреА)ред

рдореИрдВ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдмрд╣реБрдд рдЧрдВрднреАрд░ рдирд╣реАрдВ рдорд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред 1.12 рдХреЗ рд▓рд┐рдП isnat рдХрд╛ рдПрдХ (рдирд┐рдЬреА?) рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрд░реЗ рд╕рд╛рде рдареАрдХ рд░рд╣реЗрдЧрд╛ред

suppress_warnings docstring рдХреЛ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред

рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ :)

рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рджреМрд░рд╛рди рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд┐рдмрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ / рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдбреЗрдмрд┐рдпрди рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдп рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИ :)

@sandrotosi , рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рд╢рд╛рдпрдж, рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдлрд┐рдХреНрд╕ рд╕реНрдХрд┐рдореЗрдЬ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╣рд░рд╛ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдЗрд╕реНрдирд╛рдд рд╕рд╛рдорд╛рди рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕реНрдирд╛рдд рдХреЗ рдПрдХ рдирд┐рдЬреА рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ рдХрд┐ рдпрд╣ рдХрд╣реАрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рддрд┐рдЧрдорди рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ: /ред

рдЙрди рджреЛ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рдЬреЛрдбрд╝рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реИрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкрд░реЗрд╢рд╛рдиреА рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЖрдк assert_equal рдпрд╛ assert_equal рдЕрдВрджрд░ рд╕реЗ рд╕рдорд╛рди рдирд╣реАрдВ рдХрд╣реЗрдВрдЧреЗ)ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдпреЛрдЧреНрдп рд╕реНрд╡рд╛рдореА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди 1.12 рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдмрдЧрдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕реНрд╡рдпрдВ рд╕реНрдХрд┐рдореЗрдЬ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

@ рд╣реЛрд▓ рд╕реНрдХрд┐рдо рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛?

@seberg рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп 1.12 рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдлрд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рдЗрд╕реЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЕрдзрд┐рдХ рдкреВрд░реНрдг / рд╡реНрдпрд╛рдкрдХ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЕрдЧрд▓реЗ рдбрд┐рдмрд┐рдпрди рд░рд┐рд▓реАрдЬ рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд┐рдирд╛ рд╕реБрдиреНрди рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП

@sandrotosi рдореИрдВрдиреЗ gh-8427 рдореЗрдВ рд▓реЙрдХ рдЕрдкреНрд░реЛрдЪ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореИрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдкрд╛рдЧрд▓ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ ...ред

рдХреНрдпрд╛ рдХреЛрдИ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП suppress_warnings рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдлреИрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ?

(рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред)

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдж рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдмрдЧ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ... рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдкрд░реАрдХреНрд╖рдг рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдиреНрди рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП ...ред

рдореИрдВрдиреЗ 1.12.0rc2 (рдЬрд┐рд╕рдореЗрдВ https://github.com/numpy/numpy/pull/8427) рдХреЛ рдбреЗрдмрд┐рдпрди рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ 3 рдмрд╛рд░ рд╕реНрдХрд┐рдореЗрдЬ (рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдкрд░реАрдХреНрд╖рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд┐рдирд╛ рддреЗрд╣ рдбреЗрдмрд┐рдпрди рдкреИрдХреЗрдЬ рдХрд╛ рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг) рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╣рд░ рд╕рдордп рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛ред

рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рджреМрд░рд╛рди рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдЕрдм, рдЕрдВрддрд┐рдо 1.12.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛? :)

рдореИрдВ рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬрд╝ 15 рдЬрдирд╡рд░реА рдХреЛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ rc2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреБрдореНрд╣рд╛рд░реЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рддрдп рди рд╣реЛ рдЬрд╛рдПред

рд╣рдореНрдо, рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рддрдп рдирд╣реАрдВред @seberg рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ # 8421 рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛?

# 8421 рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рддред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dcsaba89 picture dcsaba89  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

qualiaa picture qualiaa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Levstyle picture Levstyle  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

manuels picture manuels  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MareinK picture MareinK  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ