PyGithub
์ ํด๋น ์ ํ์ ๋ํ ์ ํ ์ฃผ์์ด ์์ผ๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ฃผ๋ณ์ ๋ ์์ ํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ํธ์ง๊ธฐ ์ ์์ ๊ฐ์ ํ ์ ์์ต๋๋ค. PyGithub
์๋ ์ด๋ฏธ ์ ์ ์๋ ์ ํ ๊ณ์ธต์ด ์์ผ๋ฏ๋ก ์ฌ์ฉํ ์ ์๋ ์ ํ์ด ์ด๋ฏธ ์์ต๋๋ค.
(์ฌ์ค ์๋ ์ค๋ช
์์ PyGithub
์ ์ฃผ์์ด ๋ฌ๋ ค ์๋ค๊ณ ๊ฐ์ ํ๋๋ฐ ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋๋์ต๋๋ค.)
์ด๊ฒ์ด ๋น์ ์ด ๊ณ ๋ คํ๊ฑฐ๋ ์ด๋ ค ์๋ ๊ฒ์ ๋๊น?
๊ด๋ฆฌ์๊ฐ ์ด ์์ด๋์ด์ ๋์ํ๋ค๋ฉด ๋๋ ๊ทธ๊ฒ์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ผ๋ก ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์์ ๋ ธ๋ ฅ์ด ์๋ ๊ฒ์ ๋๋ค. ์๋ง๋ ์ด ์ ์ ํ๋ก์ ํธ๋ฅผ Python 3์ผ๋ก ์ ๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค(Python2๊ฐ ๊ณง ์ง์๋ ์์ ์ด๋ฏ๋ก). ๊ทธ๋ฌ๋ฉด Python3 ์คํ์ผ ์ ํ ์ฃผ์์ ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
https://github.com/Instagram/MonkeyType ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ ํ์ผ์์ ์ธ๋ผ์ธ์ผ๋ก ์ ํ ์ฃผ์์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ฌ์ ์ผ๋ก ์คํ ์์ฑ ์์ ์ ์์ํ ๋ค์ Py2์ ๋ํ ์ง์์ ์ค๋จํ ํ ์ธ๋ผ์ธ์ผ๋ก ์ ์ฉํ ์ ์์ต๋๋ค.
์ข์, ์ค์ ๋ก @trickeydan ์์ด๋์ด ์์ ์ ์์ํ์ต๋๋ค. unittest์ ๋ํด MonkeyType์ ์คํํ์ฌ ์คํ ํ์ผ์ ์์ฑํ๊ณ .py ํ์ผ ์์ .piy ํ์ผ์ ๊ธฐ๋กํ์ต๋๋ค. MonkeyType์ด ์ฌํ๊ฒ๋ ์ฌ๊ธฐ ์ ๊ธฐ์ ๋ช ๊ฐ์ง ์ธ๋ถ ์ ๋ณด๋ฅผ ๋์น ๊ฒ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์คํ ์ ์ง์ ํ์ธํด์ผ ํฉ๋๋ค(๊ทธ๋์ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์).
๋๋ ๋ํ ์ฌ๋๋ค์ด PyGithub์ ์ ํ์ ์ ํ ๊ฒ์ฌ์ ํฌํจ์ํค๋ ค๋ฉด ๋ชจ๋์ __init__.py
์ ์๋ ๋ชจ๋ ์ ํ์ ๋ค์๊ฐ ๋ด๋ณด๋ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ด์ฌ ์๋ ์ฌ๋์ด ์์ผ๋ฉด ์ฌ๊ธฐ์์ ์งํ ์ํฉ์ ํ์ธํ ์ ์์ต๋๋ค. https://github.com/zer0tonin/PyGithub/tree/agg/type_stubs
๋ด๊ฐ ์ง๊ธ๊น์ง ์์์ฐจ๋ฆฐ ์ ์ผํ ๋ฌธ์ ๋ urllib3์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ์ดํ ์ ๋ณด๊ฐ ์๋ ๊ฒ ๊ฐ๊ณ ์ฌํ๊ฒ๋ ์ฐ๋ฆฌ๋ ๋ช ๊ฐ์ง ์ ํ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
@zer0tonin ๊ณ์ ๊ณต์ ๊ตด
urllib3
๋ ์ต๊ทผ #1002์ ๋์
๋ Retry ๊ธฐ๋ฅ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. ๋์ค์ urllib3
์ ์คํ
์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
#1231์์ ํ์
CI ์ํ์ #1442์ ์ถ๊ฐ๋ฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
https://github.com/Instagram/MonkeyType ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ ํ์ผ์์ ์ธ๋ผ์ธ์ผ๋ก ์ ํ ์ฃผ์์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ฌ์ ์ผ๋ก ์คํ ์์ฑ ์์ ์ ์์ํ ๋ค์ Py2์ ๋ํ ์ง์์ ์ค๋จํ ํ ์ธ๋ผ์ธ์ผ๋ก ์ ์ฉํ ์ ์์ต๋๋ค.