ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π² PyGithub
Π±ΡΠ»ΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ
ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠΊΡΡΠ³ Π½Π΅Π³ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ PyGithub
ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΈ ΡΡΠΎ Π·Π΄ΠΎΡΠΎΠ²ΠΎ.
(ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΡΠΎ PyGithub
Π±ΡΠ» Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½, ΠΈ Π±ΡΠ» ΡΠ΄ΠΈΠ²Π»Π΅Π½, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ).
ΠΡ ΠΎΠ±Π΄ΡΠΌΡΠ²Π°Π»ΠΈ ΡΡΠΎ ΠΈ / ΠΈΠ»ΠΈ Π³ΠΎΡΠΎΠ²Ρ Π±ΡΠ»ΠΈ Π±Ρ ΠΊ ΡΡΠΎΠΌΡ?
ΠΡΠ»ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ Ρ ΡΡΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ, Ρ Π±Ρ Π½Π΅ ΠΏΡΠΎΡΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½Π΅ΠΉ.
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΡΠΈΠΌ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠΈΠ»ΠΈΠΉ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π΄ΠΎ Python 3 (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Python2 ΡΠΊΠΎΡΠΎ ΡΠΉΠ΄Π΅Ρ), ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π²Π΅Π·Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π² ΡΡΠΈΠ»Π΅ Python3.
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ https://github.com/Instagram/MonkeyType, Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ ΡΠΈΠΏΠΎΠ², Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°-Π·Π°Π³Π»ΡΡΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π·Π°Π³Π»ΡΡΠ΅ΠΊ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Py2.
Π₯ΠΎΡΠΎΡΠΎ, Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΈΠ΄Π΅Π΅ΠΉ @trickeydan . Π― ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» ΡΠ°ΠΉΠ»Ρ-Π·Π°Π³Π»ΡΡΠΊΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ² MonkeyType ΠΏΡΠΎΡΠΈΠ² unittest ΠΈ Π·Π°ΠΏΠΈΡΠ°Π» ΠΈΡ Π² ΡΠ°ΠΉΠ»Ρ .piy ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ .py. ΠΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠ΅Ρ Π·Π°Π³Π»ΡΡΠ΅ΠΊ Π²ΡΡΡΠ½ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ MonkeyType, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠΏΡΡΡΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π·Π΄Π΅ΡΡ ΠΈ ΡΠ°ΠΌ (ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ).
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ __init__.py
ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ Π²ΠΊΠ»ΡΡΠ°Π»ΠΈ ΡΠΈΠΏ PyGithub Π² ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ².
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ Π·Π΄Π΅ΡΡ: https://github.com/zer0tonin/PyGithub/tree/agg/type_stubs
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ» Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ urllib3, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°, ΠΈ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΈΡ ΡΠΈΠΏΠΎΠ².
@ zer0tonin ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ. ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ ΠΎΡΠΊΡΡΡΡ PR ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΈΠ»ΠΈΠ°Π»Π°, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ.
urllib3
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Retry, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² # 1002. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°Π³Π»ΡΡΠΊΡ Π² urllib3
ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ°ΠΊΡΡΠ»ΡΡ Π² β1231
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ CI Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² # 1442.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ https://github.com/Instagram/MonkeyType, Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ ΡΠΈΠΏΠΎΠ², Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°-Π·Π°Π³Π»ΡΡΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π·Π°Π³Π»ΡΡΠ΅ΠΊ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Py2.