Python-future: ์ƒˆ๋กœ์šด ๋งค์ง "configparser" ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ "configparser" ๋ฐฑํฌํŠธ๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2014๋…„ 10์›” 16์ผ  ยท  13์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: PythonCharmers/python-future

Python 3.x์—๋Š” ๋‹จ์ˆœํžˆ "configparser"๋ผ๊ณ  ํ•˜๋Š” configparser ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ๋ฐฑํฌํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๋„์ž…๋œ ๋‹ค์ค‘ ์–ธ์–ด ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒจํ‚ค์ง€๊ฐ€ ๋ฐฑํฌํŠธ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘˜ ๋‹ค ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  python-future์˜ ์š”๊ตฌ ์‚ฌํ•ญ ๋ชฉ๋ก์— configparser ๋ฐฑํฌํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์ ์  ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด configparser ๋ฐฑํฌํŠธ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์ด Python 2.x์— ์žˆ๋Š” ๋™์•ˆ ์ตœ์‹  ์—…์ŠคํŠธ๋ฆผ API(๋ฐ ๊ธฐ๋Šฅ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋‚˜๋Š” ๋‹น์‹ ์˜ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ์˜ ๊ด€๋ จ์„ฑ์„ ์ •๋ง๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ API๋ฅผ ์›ํ•˜๋ฉด ์ด์ „ ๋ชจ๋“ˆ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ API๋ฅผ ์›ํ•˜๋ฉด ์ƒˆ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Python 3์„ ๋Œ€์ฒดํ•  ์œ„์น˜์— 2.x ConfigParser๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์€ ๋” ์ด์ƒ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Kali https://bugs.kali.org/view.php?id=3245 ์—์„œ ์ด์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ๋ฅผ ๋ฐ›์•˜๊ณ  ์ผ๋ฐ˜์ ์ธ Kali Linux ์‹œ์Šคํ…œ์—๋Š” Python์ด ๋ชจ๋‘ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ด์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. -future ๋ฐ python-configparser. ํ›„์ž๋Š” ์ด ๋ฒ„๊ทธ๋กœ ์ธํ•ด Python 2.x์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์— ๋Œ€ํ•ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด (1)์„ ๊ตฌํ˜„ํ•˜๊ณ  configparser์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (2) ๋ฐ๋น„์•ˆ ํŒจํ‚ค์ง€๊ฐ€ ์ตœ์†Œ ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œ๋˜๊ณ  setup.py๊ฐ€ ์‹คํ–‰๋  ๋•Œ python-configparser๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (3) ๊ฐ€๋Šฅํ•˜์ง€๋งŒ python-future์˜ API๋Š” ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ฐฐํฌํŒ์€ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! cc @sbrun

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

๋˜ํ•œ ๋ฐฑํฌํŠธ ์ €์žฅ์†Œ์—์„œ ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฏธ ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. https://bitbucket.org/ambv/configparser/issue/8/configparser-import-broken-on-py27

๋‹น๋ถ„๊ฐ„ configparser์—์„œ python-future์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ์ž‘๋™ํ•˜๋„๋ก ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

+1

๋ณด๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ python-future๋Š” ์„ค์น˜๋œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ IMO๋ฅผ ์„€๋„์ž‰ํ•˜๋Š” ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋Œ€๋ถ€๋ถ„์€ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์œผ๋ฏ€๋กœ ๊ฐ€์งœ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ทธ๋ƒฅ ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ambv , @Julian : ํ”ผ๋“œ๋ฐฑ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์•„์ง ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณด๋Š” ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. python-future์—์„œ configparser ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฌธ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๋Œ€์‹  configparser ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ configparser ๊ฐ€ Py2.7์˜ ConfigParser ์— ๋Œ€ํ•œ ๋“œ๋กญ์ธ ๋Œ€์ฒด๊ฐ€ ์•„๋‹Œ ํ•œ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ import ConfigParser ๋ฅผ import configparser as ConfigParser ๋กœ ๊ต์ฒดํ•œ ํ›„ ์„ค์น˜๋œ configparser ํŒจํ‚ค์ง€๋กœ Python 2.7.9์—์„œ test_cfgparser.py ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ 14๊ฐœ์˜ ์‹คํŒจ์™€ 9๊ฐœ์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. python-future์™€ ๊ฐ„๋‹จํ•œ configparser ๋ณ„์นญ์ด ์„ค์น˜๋˜๋ฉด ๋™์ผํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ชจ๋‘ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ชจ๋“ˆ์ด๋‚˜ ํŒจํ‚ค์ง€๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ configparser ๋ณ„์นญ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋„๋ก python-future์—์„œ setup.py ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์˜ ๋‹จ์ ์€ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๊ฐ€ requirements.txt ์— ๋‚˜์—ด๋œ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋” ๋‚˜์œ ๊ฒƒ์€ pip ๊ฐ€ requirements.txt ์— ๋‚˜ํƒ€๋‚˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค๊ณ  ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. configparser ๋ฐ future ๊ฐ€ ๋ชจ๋‘ ๋‚˜์—ด๋˜๋ฉด pip ์— ์˜ํ•ด ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์„ธํŠธ๊ฐ€ ๋น„๊ฒฐ์ •์ ์ž…๋‹ˆ๋‹ค.
  3. pip install future[without_configparser] ์™€ ๊ฐ™์€ ์„ค์น˜ ์˜ต์…˜์„ ์ง€์›ํ•˜๋ ค๋ฉด setuptools์˜ extras ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

configparser ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Python 2.7.9 ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ˜„์žฌ ConfigParser ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Py2 ์ฝ”๋“œ์˜ ์›ํ™œํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฒฝ๋กœ๋ฅผ ์œ„ํ•ด ์ถ”์ฒœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์ ์  ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด configparser ๋ฐฑํฌํŠธ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์ด Python 2.x์— ์žˆ๋Š” ๋™์•ˆ ์ตœ์‹  ์—…์ŠคํŠธ๋ฆผ API(๋ฐ ๊ธฐ๋Šฅ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋‚˜๋Š” ๋‹น์‹ ์˜ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ์˜ ๊ด€๋ จ์„ฑ์„ ์ •๋ง๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ API๋ฅผ ์›ํ•˜๋ฉด ์ด์ „ ๋ชจ๋“ˆ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ API๋ฅผ ์›ํ•˜๋ฉด ์ƒˆ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Python 3์„ ๋Œ€์ฒดํ•  ์œ„์น˜์— 2.x ConfigParser๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์€ ๋” ์ด์ƒ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Kali https://bugs.kali.org/view.php?id=3245 ์—์„œ ์ด์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ๋ฅผ ๋ฐ›์•˜๊ณ  ์ผ๋ฐ˜์ ์ธ Kali Linux ์‹œ์Šคํ…œ์—๋Š” Python์ด ๋ชจ๋‘ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ด์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. -future ๋ฐ python-configparser. ํ›„์ž๋Š” ์ด ๋ฒ„๊ทธ๋กœ ์ธํ•ด Python 2.x์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์— ๋Œ€ํ•ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด (1)์„ ๊ตฌํ˜„ํ•˜๊ณ  configparser์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (2) ๋ฐ๋น„์•ˆ ํŒจํ‚ค์ง€๊ฐ€ ์ตœ์†Œ ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œ๋˜๊ณ  setup.py๊ฐ€ ์‹คํ–‰๋  ๋•Œ python-configparser๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ๋Œ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (3) ๊ฐ€๋Šฅํ•˜์ง€๋งŒ python-future์˜ API๋Š” ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ฐฐํฌํŒ์€ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! cc @sbrun

์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ Fedora๋Š” ๋ฐฑํฌํŠธ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ configparser๋ฅผ ํŒจ์น˜ํ•ฉ๋‹ˆ๋‹ค .

FWIW, ์ €๋Š” ํ˜„์žฌ ๋ฐฑํฌํŠธ์— ๋ณ‘ํ•ฉํ•ด์•ผ ํ•˜๋Š” ์—…์ŠคํŠธ๋ฆผ ์ˆ˜์ •์„ ์ง„ํ–‰ ์ค‘์ด๋ฉฐ ๋‚ด์ผ configparser ๋ฐฑํฌํŠธ 3.5.1์„ ๋ฆด๋ฆฌ์Šคํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. python-future์— ๊ด€ํ•ด์„œ๋„ (1)์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

v0.16์˜ python-future์—์„œ configparser ๋ฅผ ๊ธฐ๊บผ์ด ์ œ๊ฑฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ค‘์ธ ๋ถ„๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/PythonCharmers/python-future/tree/v0.16.x.

ConfigParser.read_dict ๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ž‘๋™์„ ๋ฉˆ์ถ˜ ์ด์œ ๋ฅผ ์•Œ์•„๋‚ด๋ ค๊ณ  ์—ฌ๊ธฐ์— ์™”์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๊ฐ€ python-future (ํŠนํžˆ QGIS์˜ ์ผ๋ถ€)์— ๋”ฐ๋ผ ์‹œ์ž‘๋œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Python 2.7์˜ ConfigParser ๋ฒ„์ „์ด ConfigParser์˜ ์ „์ฒด API๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ 3.x์—์„œ

ํŒจํ‚ค์ง€์˜ python-future ๋ฒ„์ „์„ ์ž ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

sudo chmod 000 /usr/lib/python2.7/dist-packages/configparser/

Flake8์€ ์ตœ๊ทผ @ambv ๊ฐ€ ๊ด€๋Œ€ํ•˜๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” configparser ๋ฐฑํฌํŠธ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‚ฌ์šฉ์ž๋Š” Flake8์˜ ๊ธฐ์กด, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฌธ์„œํ™”๋œ ๋™์ž‘์„ ๊นจ๋Š” ์ด ๋ชจ๋“ˆ๋„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ ๋ฌธ์ œ์ด๋ฉฐ, ์ด์ œ ์‚ฌ๋žŒ๋“ค์ด ๋ฌธ์ œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด Flake8์— ๋ฌธ์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋Ÿฌํ•œ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋„๋ก Future๊ฐ€ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ธ๊ธ‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@sigmavirus24 Ian, ์ง€๊ธˆ์€ configparser ๋ฐฑํฌํŠธ์— ๋”ฐ๋ผ from backports import configparser ์–‘์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์„ ์ฐจ๋‹จ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@ambv ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚ด๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ configparser ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” v0.16.0์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ์—์„œ๋Š” Lukasz์˜ ๋ฐฑํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@edschofield ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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