lib2to3.fixes.fix_dict
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํตํ ํฌ์ฅํ์ง ์์ต๋๋ค dict.keys()
, .values()
๋๋ .items()
์์ list()
๋ ๋ฌธ๋งฅ์ ์ค์.
๊ทธ๋ฌ๋ ๋ด๊ฐ ๋งํ ์ ์๋ ํ ๊ฒฐ๊ณผ๊ฐ ์ง์ ๋ฐ๋ณต๋๊ฑฐ๋(์: for k, v in d.items()
) ํฌํจ ์ฌ๋ถ๊ฐ ํ์ธ๋์ด(์: if a in d.keys()
) ๋ง์ diff- ๋๋๋ฆด ์์.
python-future์ ์ด๋ฌํ ์ฑ๊ฐ์ฌ์ ํผํ๋ ์์ฒด dict-iteration ํด๊ฒฐ์ฌ๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ฌ์ ์ ํญ๋ชฉ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๋์ ๋ณด๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ฉด RuntimeError๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๋ชจ๋ ํญ๋ชฉ์ ๋ํด ๋ฐ๋ณตํ์ง ๋ชปํ ์ ์์ต๋๋ค.
for
๋ฃจํ ๋ด๋ถ๊ฐ ํญ๋ชฉ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ฒฝ์ฐ list()
๊ฐ ํ์ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ์ํํ๋ ๋ด ์์ ์ " fix_dict_methods
"๋ฅผ ์์ฑํ์ต๋๋ค.
"""Fixer for some dict methods.
Imports these compatibility methods from `future.utils`.
d.iterkeys() -> iterkeys(d)
d.iteritems() -> iteritems(d)
d.itervalues() -> itervalues(d)
d.viewkeys() -> viewkeys(d)
d.viewitems() -> viewitems(d)
d.viewvalues() -> viewvalues(d)
"""
์ฒ์ฒํ ๋จ๊ณ์ ์ผ๋ก ๋ฏธ๋ํ๋๊ณ ์๋ PY2 ์ฝ๋์ ๋ํด ๋ ์์ ํด์ผ ํฉ๋๋ค.
์์ง ์์ ์ด ํ์ํ ๋ถ๋ถ์ ๋ง์ด ์ฐพ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ list()
์ ๊ฐ๋จํ .keys/values/items()
ํธ์ถ๋ ๋ํํ์ง ์์ง๋ง ๋ณ๋์ ๋จ๊ณ๋ก ํ์ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค. - ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ ์ผ๋ฐ fix_dict
์คํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
fix_dict
์ ์ด ๋ณํ์ ๊ด์ฌ์ด ์๋์ง ์๋ ค์ฃผ์ธ์. ์ ๋ ์ด๋ฆ์ ๋ฐ๊พธ๋ ค๊ณ ํฉ๋๋ค. (์๋ง๋ fix_dict_methods_with_import
?)
์๋
ํ์ธ์ @rdrey , ์ ๋ ์ด ๋ณ์ข
์ ๊ด์ฌ์ด ์์ต๋๋ค. ํนํ ์ฝ๋๋ฒ ์ด์ค๊ฐ ๋ฐ๋ณต์๋ง ํ์ํ ๋ ํญ์ iter
๋ฒ์ ์ ํธ์ถํ๋ ๊ฒฝ์ฐ ์ผ๋ฐ fix_dict
์ ์ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
@rkouye ์ฌ๊ธฐ ์์ต๋๋ค: https://gist.github.com/rdrey/a307f46f7708b65421061374a14d60e9
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
for
๋ฃจํ ๋ด๋ถ๊ฐ ํญ๋ชฉ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ฒฝ์ฐlist()
๊ฐ ํ์ํฉ๋๋ค.