Numpy: ๋•Œ๋•Œ๋กœ supress_warnings๊ฐ€ ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋†“์นฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 12์›” 23์ผ  ยท  60์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: numpy/numpy

skimage๋ฅผ ์ปดํŒŒ์ผํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ฐ€๋” ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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'

๋‚˜๋Š” ์ด๊ฒƒ์ด numpy ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

00 - Bug numpy.testing

๋ชจ๋“  60 ๋Œ“๊ธ€

ํ , ์•ฝ๊ฐ„ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. skimage ํ…Œ์ŠคํŠธ์—์„œ (์ด์ƒํ•œ) ์Šค๋ ˆ๋”ฉ์ด ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฒฝ๊ณ  ์ฒ˜๋ฆฌ๋Š” ํŒŒ์ด์ฌ์—์„œ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์ƒ๋‹นํžˆ ๋ง์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ์–ด๋ ค์›€์ด ์žˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ •ํ™•ํ•œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด ๋ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

assert_warns ์ •๋„๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ์ถ”์ธกํ•œ๋‹ค. ์‚ด์•„์žˆ๋Š” ํ•˜๋‚˜์˜ suppress_warnings ์ปจํ…์ŠคํŠธ ๋งŒ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค (๊ฐ€์žฅ ๋ฐ”๊นฅ ์ชฝ ๋ฒ”์œ„์ด๊ณ  numpy์˜ ํ…Œ์ŠคํŠธ ์‹คํ–‰๊ธฐ์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋ฉฐ skimage๊ฐ€์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •). ์ด์ œ ๋‚ด๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ด์œ ๋Š” _orig_show ์ •์˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ด๋ฏธ ์ข…๋ฃŒ ๋œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ warnings.showwarning ์€ (๋Š”) ์ด๋ฏธ ์ด์ „ ๊ฐ’์œผ๋กœ ์žฌ์„ค์ •๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์ „์ฒด ๊ฒฝ๊ณ  ๋‚ด์šฉ์ด ๋ถ„ํ•ด๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด :

thread1 : ๊ฒฝ๊ณ  ์ปจํ…์ŠคํŠธ ์ž…๋ ฅ-> ์ผ๋ฐ˜ ๊ฒฝ๊ณ  ์ธ์‡„ ๋Œ€์ฒด
thread2 : ๊ฒฝ๊ณ  ์ปจํ…์ŠคํŠธ ์ž…๋ ฅ-> thread1 ๊ฒฝ๊ณ  ํ•ธ๋“ค๋Ÿฌ ๋Œ€์ฒด
thread1 : ๊ฒฝ๊ณ  ์ปจํ…์ŠคํŠธ ์ข…๋ฃŒ-> ์ผ๋ฐ˜ ๊ฒฝ๊ณ  ์ธ์‡„๋กœ ์žฌ์„ค์ •
thread2 : ๊ฒฝ๊ณ  ์ปจํ…์ŠคํŠธ ์กด์žฌ-> thread1์˜ ๊ฒฝ๊ณ  ํ•ธ๋“ค๋Ÿฌ๋กœ ์žฌ์„ค์ •-> kaboom.

Btw. ๋‚˜๋Š” ๋‹น์‹ ์ด "skimage์—์„œ __warning_registry__ ์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์–ต์ œ ๊ฒฝ๊ณ ๋Š” ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ ํ•จ), ํฅ๋ฏธ ๋กญ๊ฑฐ๋‚˜ ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ๋น„์•ˆ ์šฉ skimage๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ๋Š” ์ „ํ˜€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ scikit-image / scikit-image # 2412๋ฅผ ์—ด์–ด์„œ ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์™„์ „์„ฑ์„ ์œ„ํ•ด : ๋•Œ๋กœ๋Š” skimage๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์Šคํƒ ์ถ”์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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'

์–ด๋–ค ๋ฒ„์ „์˜ python, numpy ๋“ฑ์œผ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

Numpy 1.12 ~ RC ~ ๋ฒ ํƒ€ 1, Python 2.7 ๋ฐ 3.5
(์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์‹ค์ˆ˜ : ์•„์ง RC๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค)

ํ , ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค .... ์™œ ์Šค๋ ˆ๋”ฉ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜๋Š” ์—†์ง€๋งŒ ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด๋‚˜ catch_warning ๊ฐ™์€ ํ•ญ๋ชฉ (ํฌํ•จ)์˜ ์ž˜๋ชป๋œ ์ค‘์ฒฉ์—†์ด ๋ฐœ์ƒํ•˜๋Š”์ด ์˜ค๋ฅ˜๋Š” suppress_warning ).

๋‚˜๋Š” ๋˜ํ•œ ๊ทธ๊ฒƒ์ด ํ•ญ์ƒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œ๋ฅผ ๋‘ ๋ฒˆ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ „ํ˜€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@olebole ํ…Œ์ŠคํŠธ ์ŠˆํŠธ๋ฅผ ์ •ํ™•ํžˆ ์–ผ๋งˆ๋‚˜ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ ์—์„œ ๋ณต์‚ฌ :

#!/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

ํ…Œ์ŠคํŠธ๊ฐ€ X11 ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— xvfb-run ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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]

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ‘๋ ฌ ํ…Œ์ŠคํŠธ๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๊ฒฝ์Ÿ ์กฐ๊ฑด์ด ์—†์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

nose๊ฐ€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ teardownContext ๋ฅผ ์‹คํ–‰ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?!

์•„๋‹ˆ, ์•„๋งˆ ๋ฐ”๋ณด ๊ฐ™์•„. ์–ต์ œ ๊ฒฝ๊ณ  ์ปจํ…์ŠคํŠธ๋Š” ์†์„ฑ์„ ์‚ญ์ œํ•˜๊ธฐ ์ „์— warnings.showwarning ์žฌ์„ค์ •ํ•˜๋ฏ€๋กœ gc ์‹œ์ž‘์กฐ์ฐจ๋„ ๋‹ค๋ฅธ ์ž‘์—… ์—†์ด๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ „ํ˜€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. :).

๊ธ€์Ž„, ๋‚˜๋Š” skimage-0.9.3์—์„œ 33 ๊ฐœ์˜ ์˜ค๋ฅ˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋Œ€๋ถ€๋ถ„์€ PIL์ด๋‚˜ ์ธ๋ฑ์‹ฑ์—์„œ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์–ต์ œ์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์˜ค๋ฅ˜๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

@charris ์ด ๋ฌธ์ œ๋Š” 0.9.3์ด ์•„๋‹Œ 0.12.3์— ๋Œ€ํ•ด๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :)

์ข‹์•„, ๋งˆ์นจ๋‚ด ์—…์ŠคํŠธ๋ฆผ์—์„œ ํ’€๋‹ค์šด๋˜์–ด ์ด์ œ 39 ๊ฐœ์˜ ์˜ค๋ฅ˜์™€ ์ˆ˜๋งŽ์€ ์ง€์› ์ค‘๋‹จ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ๊ณ ๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ Wayland๊ฐ€ ์•„๋‹Œ QT์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์—์„œ ๊ตฌ์„ฑ ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

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

nosetests ๋Š” ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ง€์› ์ค‘๋‹จ์€ ์ •์ƒ์ž…๋‹ˆ๋‹ค. ์ง€์› ์ค‘๋‹จ์ด ์˜ˆ์ƒ ๋˜๋”๋ผ๋„ ์ด์ „ API๋ฅผ ๊ณ„์† ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜์— ๋Œ€ํ•ด์„œ๋Š” ์ •์ƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. (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))'.

scikit-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/_shared/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)

Particuler์—์„œ ๋‘ ์ค„ ์ค‘ ํ•˜๋‚˜

    assert_equal(out1, out2)

# or

    assert_equal(out, out1)

์˜ค๋ฅ˜๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ @parallel ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฒฐ๋ก ์€ ๋ฒกํ„ฐ์™€ ํ•จ๊ป˜ ํ˜ธ์ถœ ๋œ assert_equal ์™€ ๊ฒฐํ•ฉ ๋œ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚จ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹น์—ฐํžˆ, assert equal ํ•จ์ˆ˜๋Š” ".*NAT ==" ๊ฒฝ๊ณ ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค assert_equal ์Šค๋ ˆ๋”ฉ ์ง€์›).

์ฒ™ ์ถ”์  ์ž˜ ํ–ˆ์–ด!

๊ทธ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค.

์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋‹ค๋ฅธ numpy ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ํ…Œ์ŠคํŠธ ์ŠˆํŠธ์—๋Š” ๊ฒฝ๊ณ  ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  np.errstate ๋Š” ์•„๋งˆ๋„ ์Šค๋ ˆ๋“œ ์„ธ์ดํ”„์ผ๊นŒ์š”?

์ด ๋ฉ‹์ง„ ์กฐ์‚ฌ @charris ์™€ @seberg์— ๋งŽ์€ ๊ฐ์‚ฌ๋ฅผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

ํ , ์ข€ ์งœ์ฆ๋‚˜ ๋„ค์š”. ์–ต์ œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋‹ค์šด ์ŠคํŠธ๋ฆผ์˜ ๋™์ž‘์ด ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ดœ์ฐฎ์„ ์ˆ˜ ์žˆ์ง€๋งŒ (์•„๋งˆ๋„ ๋” ๊นจ๋—ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค) ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฆด๋ฆฌ์Šค์— ์ข‹์€์ง€ ํ™•์‹  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋น„๊ต ์œ ํ˜• ํ…Œ์ŠคํŠธ์—์„œ ๋ฎคํ…์Šค๋ฅผ ์ž ๊ธ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›์น™์ ์œผ๋กœ ํ•ญ์ƒ ๊ดœ์ฐฎ์€ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์–ด๋–ป๊ฒŒ ๊นจ์งˆ ์ˆ˜ ์žˆ๋Š”์ง€ ์ •๋ง ์ƒ๊ฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

assert_equal ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„ NaT ๋น„๊ต๋ฅผ ์œ„ํ•ด ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. NaT๋Š” int64๋กœ ๋ณ€ํ™˜ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ’์€ min_int64์ž…๋‹ˆ๋‹ค.

์•„, ์‚ฌ์‹ค, ์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ NaT๋ฅผ ๋ช…์‹œ ์ ์œผ๋กœ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์•ฝ๊ฐ„ ์„ฑ๊ฐ€ ์‹œ์ง€๋งŒ (ํŠนํžˆ NaT๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—) ์–ด๋ ต์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฐ์—ด ๋น„๊ต์™€ ๊ด€๋ จํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ฒƒ ์ค‘ ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์ด ์žˆ์ง€๋งŒ ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡์— ๋Œ€ํ•ด ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

์–ด์„ค ์…˜์— NaT ๋กœ์ง์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋งˆ์Šคํ„ฐ์—๊ฒŒ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ฐฑ ํฌํŒ…์—๋Š” ์ž‘๋™ํ• ์ง€ ํ™•์‹  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. suppress_warnings ๊ฐ€ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ๊ธดํ•˜์ง€๋งŒ ๊ฒฝ์Ÿ ์กฐ๊ฑด ์ž์ฒด๋Š” ์ด๋ฏธ ์ง€๋‚œ ๋ฆด๋ฆฌ์Šค์—์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ isnat ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ datetime/timedelta ์—์„œ isnan datetime/timedelta ๋ฅผ ์ง€์›ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, isnat ๊ธฐ๋Šฅ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. accurs์—๋Š” timedelta64 ๋ฐ datetime64 ๋‘ ๊ฐ€์ง€ ์œ ํ˜•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. NaT ๊ฐ’์€ ์–ด๋””์—๋„ ๋…ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฉฐ np.nat ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์ •์˜๋Š” ndarraytypes.h ์ž…๋‹ˆ๋‹ค.

@charris , Chuck, ๋Œ€์‹  np.isnat ํ•˜๊ฑฐ๋‚˜ isnan ์—์„œ datetime ๋ฐ timedelta๋ฅผ ํ—ˆ์šฉ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํ , isnan ๋ชจ๋‘ ๋„ฃ๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กœ์šด ์ƒ๊ฐ์ด์ง€๋งŒ์ด ์‹œ์ ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @jsmith @juliantaylor ์ƒ๊ฐ?

@shoyer๋„ ์˜๊ฒฌ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ isnat ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ๋ฆด๋ฆฌ์Šค์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํƒ€์ด๋ฐ์— ๋Œ€ํ•ด ํ™•์‹  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ•œ์˜ ๋ฒ„์ „์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค๋ฉด, ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์•„๋งˆ๋„ ํŒŒ์ด์ฌ isnat ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธ ์ŠˆํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์ด์ „๋ณด๋‹ค ๋” ๋งŽ์€ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 1. ์šฐ๋ฆฌ์˜ ํ…Œ์ŠคํŠธ ์ŠˆํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  2. ์‹ค์ œ๋กœ ๊ฒฝ๊ณ ๋ฅผ์ฃผ์˜ ๊นŠ๊ฒŒ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค).

๋‚˜๋Š” ์‹คํŒจ๊ฐ€ ๋ชน์‹œ ์‹ฌ๊ฐํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. isnat์˜ (๋น„๊ณต๊ฐœ?) ํŒŒ์ด์ฌ ๋ฒ„์ „์€ 1.12์—์„œ ๋‚˜์—๊ฒŒ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

suppress_warnings ๋… ์ŠคํŠธ๋ง์€ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ์„ ์–ธ๊ธ‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค :)

ํœด์ผ ๋™์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ฒ ์ €ํ•œ ๋””๋ฒ„๊ทธ๋ฅผ ํ•ด์ฃผ์‹  ๋งŽ์€ ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ / ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜์žˆ๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฐ๋น„์•ˆ์€ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ •์„ ์—ด๋งํ•ฉ๋‹ˆ๋‹ค :)

@sandrotosi , ์•ˆํƒ€๊น๊ฒŒ๋„ ์•ฝ๊ฐ„ ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‚ด isnat์—์„œ์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (isnat์˜ ๋น„๊ณต๊ฐœ ํŒŒ์ด์ฌ ๋ฒ„์ „ ์‚ฌ์šฉ). ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ…Œ์ŠคํŠธ ํšŒ๊ท€๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์„์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค : /.

์ด ๋‘ ๊ฒฝ์šฐ์— ๋ฎคํ…์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  (๋‹น์‹ ์ด ํ˜ธ์ถœ ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์œ ๊ฐˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์ธ๋‹คํ•ด์•ผ ๊ทธ๋Ÿด๋“ฏํ•œ ํ•ดํ‚น ๋  ์ˆ˜์žˆ๋‹ค assert_equal ๋˜๋Š” ๋‚ด๋ถ€์—์„œ ๋น„์Šทํ•œ assert_equal ). ๋‚˜๋Š” ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ numpy master์—์„œ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด์ง€๋งŒ 1.12์— ๋Œ€ํ•œ ์ตœ์†Œํ•œ์˜ ๋ฒ„๊ทธ ์ˆ˜์ •์œผ๋กœ ์‹ค์ œ ์˜ต์…˜ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ skimage ํ…Œ์ŠคํŠธ ์ž์ฒด๋ฅผ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@olebole ์€

@seberg ๊ทธ๋ž˜ ๋‚˜๋Š” ๋ชฉํ‘œ๊ฐ€ 1.12์— ๋Œ€ํ•œ ์ตœ์†Œํ•œ์˜ ์ˆ˜์ •์„ ๊ฐ€์ง€๊ณ  ๊ถ๊ทน์ ์œผ๋กœ ๋งˆ์Šคํ„ฐ์—์„œ ๋” ์™„์ „ํ•˜๊ณ  ํฌ๊ด„์  ์ธ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค-์ ์–ด๋„ ๋‹ค์Œ ๋ฐ๋น„์•ˆ ๋ฆด๋ฆฌ์Šค ๊ฐ€์ด ๋ฌธ์ œ์—†์ด numpy๋ฅผ ๊ฐ–๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@sandrotosi gh-8427์—์„œ ์ž ๊ธˆ ๋ฐฉ์‹์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ƒ๊ฐ์ด ๋ฏธ์ณค๋Š”์ง€ ์•„๋‹Œ์ง€๊ฐ€ ์•„๋‹ˆ๋ผ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ....

์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์„ ๊ฐ€์ง€๋„๋ก ๋‹จ์ˆœํžˆ suppress_warnings ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋  ๋•Œ ์ถฉ๋Œํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

(๋‚˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์ง€๋งŒ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ์ „ํžˆ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)

๋ฌผ๋ก , ์†์„ฑ์„ ์‚ญ์ œํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋‚˜์ค‘์— ํ…Œ์ŠคํŠธ์—์„œ ๋ฒ„๊ทธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ…Œ์ŠคํŠธ ์ŠˆํŠธ๋Š” ๊ฒฝ๊ณ  ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ๋ฉ์ฒญํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1.12.0rc2 (https://github.com/numpy/numpy/pull/8427 ํฌํ•จ)๋ฅผ ๋ฐ๋น„์•ˆ์— ์—…๋กœ๋“œํ•˜๊ณ  skimage (ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ์•ฝ๊ฐ„ ์˜ค๋ž˜๋œ ๋ฒ„์ „์˜ ๋ฐ๋น„์•ˆ ํŒจํ‚ค์ง€)๋ฅผ 3 ๋ฒˆ โ€‹โ€‹๋‹ค์‹œ ๋นŒ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํœด์ผ ๋™์•ˆ์ด ์ž‘์—…์„ ํ•ด์ฃผ์‹  ๋งŽ์€ ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ด์ œ ์ตœ์ข… 1.12.0 ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ? :)

์ตœ์ข… ๋ฐœ๋งค๋Š” 1 ์›” 15 ์ผ์ž…๋‹ˆ๋‹ค.

rc2์—์„œ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋งˆ์Šคํ„ฐ์—์„œ ์ˆ˜์ • ๋  ๋•Œ๊นŒ์ง€ ์—ด์–ด ๋‘ก๋‹ˆ๋‹ค.

ํ , ๋งˆ์Šคํ„ฐ์—์„œ ๊ณ ์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. @seberg # 8421์ด ์ด๊ฒƒ์„ ๋‹ซ๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๊นŒ?

# 8421๋กœ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰