ΠΠΈ Π³ΠΎ ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ ΡΡΠ΅ΡΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡΠ΅Π²ΠΎΠ΄ΠΎΡ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΎΡ Π·Π° ΠΏΠ°ΡΠ΅ΠΊΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΏΠΎΠΌΠΈΠ½Π° Dropbox ΠΏΡΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π·Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° Python.
β ΠΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΈ Π΄Π΅Π»ΠΎΠ²ΠΈ:
ΠΠΎΡΡΠΈΠ³Π½ΡΠ²Π°ΡΡΠΈ 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π²Π½Π΅ΡΠ΅Π½ ΠΊΠΎΠ΄
ΠΡΡΠ³ Π³ΠΎΠ»Π΅ΠΌ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊ (ΠΈ Π²ΡΠΎΡ Π½Π°ΡΡΠ΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠ΅ΡΡ ΠΈΡΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΎ) Π±Π΅ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΊΠΎΠ΄ ΠΏΠΎΠΊΡΠΈΠ΅Π½ ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π²ΠΎ Dropbox. ΠΡΠΎΠ±Π°Π²ΠΌΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π·Π° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΠΌΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΎΠ΄ ΠΏΡΠΈΡΠΎΠ΄Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Π²ΠΏΠΈΡΠ°Π½Π°ΡΠ° Π±Π°Π·Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π΄ΠΎ ΡΠΎΠΊΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π½Π°ΠΏΠΎΡΠΈΡΠ΅ Π½Π° ΡΠΈΠΌΠΎΡ mypy Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΎ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ Π·Π°ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΠΏΠΎΡ. ΠΠ° ΠΊΡΠ°ΡΠΎΡ, ΡΠ΅ ΡΠΈΠ½Π΅ΡΠ΅ Π΄Π΅ΠΊΠ° Π½Π΅ΠΌΠ° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ° Π·Π° ΠΏΠΎΠ±Π΅Π΄Π°, Π½ΠΎ ΡΡΠΏΠ΅Π°Π²ΠΌΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌΠ΅ Π±ΡΠ· ΡΠ°ΡΡ Π½Π° ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ.
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, Π½Π°ΡΠ΅ΡΠΎ Π½Π°ΡΠ³ΠΎΠ»Π΅ΠΌΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π½Π° Python (ΡΠΎ ΠΊΠΎΠ΄ Π·Π° Π·Π°Π΄Π½ΠΈΠ½Π°) ΠΈΠΌΠ° ΡΠΊΠΎΡΠΎ 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΎΠ·Π½Π°ΡΠ΅Π½ ΠΊΠΎΠ΄. Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄ Π±Π΅ΡΠ΅ Π·Π°Π²ΡΡΠ΅Π½Π° Π·Π° ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΡΡΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Mypy ΡΠ΅Π³Π° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° ΠΏΠΎΠΊΡΠΈΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΡΠΎ Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π°Π°Ρ ΡΠ»Π΅Π΄Π΅ΡΠ΅ΡΠΎ Π½Π° Π½Π°ΠΏΡΠ΅Π΄ΠΎΠΊΠΎΡ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΌΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° ΠΊΠΎΠ΄ ΡΠΎ Π½Π΅ΡΠ°ΡΠ½ΠΎΡΠΈΠΈ Π²ΠΎ ΡΠΈΠΏΠΎΠ²ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΡΠΈΠΏ Any
Π²ΠΎ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ΄Π°Ρ ΠΈΠ»ΠΈ ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ²ΠΎΠ· Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ°Π°Ρ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ. ΠΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΎΡΠ½ΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π²ΠΎ Dropbox, ΠΏΡΠΈΠ΄ΠΎΠ½Π΅ΡΠΎΠ²ΠΌΠ΅ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈΡΠ΅ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ (Ρ.Π½. Π½ΠΈΠΊΡΠ»ΡΠΈ) Π·Π° Π½Π΅ΠΊΠΎΠΈ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π²ΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ Π½Π° Python
ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π²ΠΌΠ΅ (ΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈΠ·ΠΈΡΠ°Π²ΠΌΠ΅ Π²ΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ PEP) Π½ΠΎΠ²ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΠΎΠΏΡΠ΅ΡΠΈΠ·Π½ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π° Π½Π΅ΠΊΠΎΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π½Π° Python. ΠΠ°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΠ²Π° Π΅ TypeDict
, ΠΊΠΎΡ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π° ΡΠ΅ΡΠ½ΠΈΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈ Π½Π° JSON ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ ΡΠΈΠΊΡΠ΅Π½ ΡΠ΅Ρ Π½Π° ΠΊΠΎΠΏΡΠΈΡΠ° ΠΎΠ΄ Π½ΠΈΠ·Π°, ΡΠ΅ΠΊΠΎΡ ΡΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΠΎΠ΄ ΡΠ²ΠΎΡ ΡΠΈΠΏ. ΠΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ Π΄Π° Π³ΠΎ ΡΠΈΡΠΈΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ. ΠΠ°ΡΠΈΠΎΡ ΡΠ»Π΅Π΄Π΅Π½ ΡΠ΅ΠΊΠΎΡ Π½Π°ΡΠ²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ ΡΠ΅ Π±ΠΈΠ΄Π΅ Π΄Π° ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Π½ΡΠΌΠ΅ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π° Python.
ΠΡΠΎΡ Π½Π° Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΎΠ·Π½Π°ΡΠ΅Π½ ΠΊΠΎΠ΄: ΡΠ΅ΡΠ²Π΅Ρ
ΠΡΠΎΡ Π½Π° Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΎΠ·Π½Π°ΡΠ΅Π½ ΠΊΠΎΠ΄: ΠΊΠ»ΠΈΠ΅Π½Ρ
ΠΠΊΡΠΏΠ΅Π½ Π±ΡΠΎΡ Π½Π° Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΎΠ·Π½Π°ΡΠ΅Π½ ΠΊΠΎΠ΄
ΠΠ²Π΅ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΡΡΠΎ Π³ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ Π·Π° Π΄Π° Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΠΈΠΌΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π½ ΠΊΠΎΠ΄ Π²ΠΎ Dropbox:
Π‘ΡΡΠΎΠ³ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠ°ΡΠ°. ΠΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ Π³ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°Π²ΠΌΠ΅ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΡΡΡΠΎΠ³ΠΎΡΡΠ° Π½Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° Π½ΠΎΠ² ΠΊΠΎΠ΄. ΠΠ°ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅ ΡΠΎ ΡΠΎΠ²Π΅ΡΠΈ Π·Π° Π»ΠΈΠ²ΡΠΈΡΠ° ΠΊΠΎΠΈ ΡΡΠ³Π΅ΡΠΈΡΠ°Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°Π° Π½Π΅ΠΊΠΎΠΈ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ. Π‘Π΅Π³Π° Π±Π°ΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π²ΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π½Π° Python ΠΈ Π²ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
ΠΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅. ΠΠ° ΡΠΈΠΌΠΎΠ²ΠΈΡΠ΅ ΠΈΠΌ ΠΈΡΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π½Π΅Π΄Π΅Π»Π½ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° ΡΡΠ΅ΠΏΠ΅Π½ΠΎΡ Π½Π° Π²Π½Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π° Π½ΠΈΠ²Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π²Π°ΠΌΠ΅ ΡΠΎΠ²Π΅ΡΠΈ Π·Π° ΡΠΎΠ° ΡΡΠΎ ΡΡΠ΅Π±Π° ΠΏΡΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΏΠΈΡΠ΅.
ΠΠΎΠΏΡΠ»Π°ΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° mypy. ΠΠ±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° mypy Π½Π° Π½Π°ΡΡΠ°Π½ΠΈ ΠΈ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΠΌΠ΅ ΡΠΎ ΡΠΈΠΌΠΎΠ²ΠΈ Π·Π° Π΄Π° ΠΈΠΌ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΡΠΎ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ.
ΠΠ½ΠΊΠ΅ΡΠΈ. ΠΠΈΠ΅ ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΠΌΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΈ Π°Π½ΠΊΠ΅ΡΠΈ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π·Π° Π΄Π° Π³ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΠΌΠ΅ Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΡΠΌΠ΅ Π΄Π° ΠΎΠ΄ΠΈΠΌΠ΅ Π΄ΠΎΡΡΠ° Π΄Π°Π»Π΅ΠΊΡ Π²ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ (Π΄ΡΡΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½ΠΎΠ² ΡΠ°Π·ΠΈΠΊ Π·Π° Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π° mypy!).
ΠΠ·Π²Π΅Π΄Π±Π°. ΠΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° Π³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠ²ΠΌΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π° mypy ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π΄Π΅ΠΌΠΎΠ½ΠΎΡ ΠΈ mypyc. ΠΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π΅Π΄Π½Π°ΡΠ°Ρ Π½Π΅ΠΏΡΠΈΡΠ°ΡΠ½ΠΎΡΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π°Π°Ρ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΠΆΡΠ²Π°ΡΠ΅ ΠΈ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡΠΈΠ½ΠΈ Π½Π° ΠΊΠΎΠ΄.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΡΡΠ΅Π΄Π½ΠΈΡΠΈΡΠ΅. Π‘ΠΎΠ·Π΄Π°Π΄ΠΎΠ²ΠΌΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° mypy Π²ΠΎ ΡΡΠ΅Π΄Π½ΠΈΡΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠ΅ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈ Π½Π° Dropbox. ΠΠ²Π° Π³ΠΈ Π²ΠΊΠ»ΡΡΡΠ²Π° PyCharm, Vim ΠΈ VS Code. ΠΠ²Π° Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° Π³ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. ΠΠ²ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²ΠΈ Π΄Π΅ΡΡΡΠ²Π° ΡΠ΅ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΈ ΠΊΠΎΠ³Π° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΡΠ²Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄.
Π‘ΡΠ°ΡΠΈΡΠΊΠ° Π°Π½Π°Π»ΠΈΠ·Π°. Π‘ΠΎΠ·Π΄Π°Π΄ΠΎΠ²ΠΌΠ΅ Π°Π»Π°ΡΠΊΠ° Π·Π° Π·Π°ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΠΏΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΡΠ°ΡΠΈΡΠΊΠ° Π°Π½Π°Π»ΠΈΠ·Π°. ΠΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π²ΠΎ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π΄Π° ΡΠ° Π·Π³ΠΎΠ»Π΅ΠΌΠΈΠΌΠ΅ ΠΏΠΎΠΊΡΠΈΠ΅Π½ΠΎΡΡΠ° Π½Π° Π½Π°ΡΠΈΠΎΡ ΡΠΈΠΏ Π½Π° ΠΊΠΎΠ΄ Π±Π΅Π· ΠΌΠ½ΠΎΠ³Ρ Π½Π°ΠΏΠΎΡ.
ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ. ΠΠ½ΠΎΠ³Ρ ΠΎΠ΄ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π°Π»Π°ΡΠΊΠΈ SQLAlchemy. ΠΠΈ ΠΊΠΎΡΠΈΡΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Python ΠΊΠΎΠΈ ΡΠΈΠΏΠΎΠ²ΠΈΡΠ΅ PEP 484 Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π°Ρ. ΠΠΈΠ΅, Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ PEP 561, ΡΠ° ΡΠΎΠ·Π΄Π°Π΄ΠΎΠ²ΠΌΠ΅ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π·Π° Π½ΠΈΠΊΡΠ»ΡΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π²ΠΌΠ΅ Π΄ΠΎΠ΄Π°ΡΠΎΠΊ Π·Π° mypy (
Π’Π΅ΡΠΊΠΎΡΠΈΠΈ Π½Π° ΠΊΠΎΠΈ Π½Π°ΠΈΠ΄ΠΎΠ²ΠΌΠ΅
ΠΠ°ΡΠΎΡ Π΄ΠΎ 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π²Π½Π΅ΡΠ΅Π½ ΠΊΠΎΠ΄ Π½Π΅ Π½ΠΈ Π±ΠΈΠ» ΠΎΡΡΠ΅ΠΊΠΎΠ³Π°Ρ Π»Π΅ΡΠ΅Π½. ΠΠ° ΠΎΠ²Π°Π° ΠΏΠ°ΡΠ΅ΠΊΠ° Π½Π°ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³Ρ Π΄ΡΠΏΠΊΠΈ ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π³ΡΠ΅ΡΠΊΠΈ. ΠΠ²Π° ΡΠ΅ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΈ Π½Π°ΠΈΠ΄ΠΎΠ²ΠΌΠ΅. Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅ΡΠΎ Π·Π° Π½ΠΈΠ² ΡΠ΅ ΠΈΠΌ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π°Ρ ΡΠ»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠ²Π°Π°Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. ΠΠ° Π·Π°ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°ΠΌΠΎ ΠΌΠ°Π» Π±ΡΠΎΡ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. Π‘Γ¨ ΡΡΠΎ Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π²ΠΎ ΠΎΠ²ΠΈΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π½Π΅ Π±Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ. ΠΠ°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π±Π΅Π° Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΡΠΏΠΈΡΠΎΠΊΠΎΡ Π·Π° ΡΠΊΠ΅Π½ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ³Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈΡΠ° ΠΏΡΠ²ΠΈΡΠ΅ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π²ΠΎ Π½ΠΈΠ². ΠΠΊΠΎ Π½Π΅ΡΡΠΎ Π΅ ΡΠ²Π΅Π·Π΅Π½ΠΎ ΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ» Π»ΠΎΡΠΈΡΠ°Π½ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°, ΡΠΎΠ³Π°Ρ Π·Π±ΠΎΡΡΠ²Π°Π²ΠΌΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΊΠ°ΠΊΠΎ Any
, ΠΊΠΎΠΈ Π²ΠΎΠΎΠΏΡΡΠΎ Π½Π΅ Π±Π΅Π° ΡΠ΅ΡΡΠΈΡΠ°Π½ΠΈ. ΠΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π³ΡΠ±Π΅ΡΠ΅ Π½Π° ΡΠΎΡΠ½ΠΎΡΡΠ° Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²ΠΎ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΈ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠ²ΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎΡΠ΅Π³Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π½Π΅Π½Π°Π΄ΡΠ²Π°ΡΠΊΠΈ Π΄ΠΎΠ±ΡΠΎ, ΠΈΠ°ΠΊΠΎ ΡΠΈΠΏΠΈΡΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡΠ° Π΅ Π΄Π΅ΠΊΠ° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΠΎΠΏΡΠ΅Π³ΠΎΡ Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ΠΎΡ ΠΎΡΠΊΡΠΈΠ²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΠΎ Π΄ΡΡΠ³ΠΈ Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ. ΠΠΎ Π½Π°ΡΠ»ΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π° Π±Π΅Π° ΡΠΏΠΎΠ΅Π½ΠΈ Π΄Π²Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΊΠΎΠ΄, Π²ΠΎ ΠΊΠΎΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΎ Π΅Π΄Π½Π° ΠΎΠ΄ Π΄ΡΡΠ³Π°, Π²Π΅ΡΠ΅ Π±Π΅Π° ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ, ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° ΡΠΈΠΏΠΎΠ²ΠΈΡΠ΅ Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ Π½Π΅ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΈ Π΅Π΄Π½ΠΈ ΡΠΎ Π΄ΡΡΠ³ΠΈ. ΠΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΠΎΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π°Ρ ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈΡΠ΅. ΠΠ»Π΅Π΄Π°ΡΡΠΈ Π½Π°Π½Π°Π·Π°Π΄ ΡΠ΅Π³Π°, ΡΡΠ°ΡΠ°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π°ΡΠ΅ ΠΏΠΎΡΠ°Π½ΠΎ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΠΎ ΠΎΠ±Π»Π°ΡΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π½Π° mypy. ΠΠ²Π° ΡΠ΅ ΡΠ° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²Π°.
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ° Π·Π° ΡΡΠ°ΡΠΈΠΎΡ ΠΊΠΎΠ΄. ΠΠΎΠ³Π° Π·Π°ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅, ΠΈΠΌΠ°Π²ΠΌΠ΅ ΠΎΠΊΠΎΠ»Ρ 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄ Π½Π° Python. ΠΠ΅ΡΠ΅ ΡΠ°ΡΠ½ΠΎ Π΄Π΅ΠΊΠ° ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠ΅Π»ΠΈΠΎΡ ΠΎΠ²ΠΎΡ ΠΊΠΎΠ΄ Π½Π΅ Π΅ Π»Π΅ΡΠ½Π° Π·Π°Π΄Π°ΡΠ°. Π‘ΠΎΠ·Π΄Π°Π΄ΠΎΠ²ΠΌΠ΅ Π°Π»Π°ΡΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½Π° PyAnnotate ΠΊΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ±ΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΈΠΏΠΎΡ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ ΡΠ΅ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΡ Π½Π° Π²Π°ΡΠΈΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΎΠ±ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π‘Π΅ΠΏΠ°ΠΊ, Π½Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π²ΠΌΠ΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ²Π°Π° Π°Π»Π°ΡΠΊΠ°. Π‘ΠΎΠ±ΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΈΠΏΠΎΡ Π±Π΅ΡΠ΅ Π±Π°Π²Π½ΠΎ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ ΡΠ΅ΡΡΠΎ Π±Π°ΡΠ°Π° ΠΌΠ½ΠΎΠ³Ρ ΡΠ°ΡΠ½ΠΈ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠ°. Π Π°Π·ΠΌΠΈΡΠ»ΡΠ²Π°Π²ΠΌΠ΅ Π΄Π° ΡΠ° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ ΠΎΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ ΠΊΠΎΠ³Π° Π³ΠΎ ΠΏΡΠ΅Π³Π»Π΅Π΄ΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ΄ΠΎΡ ΠΈΠ»ΠΈ ΡΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΈΠΏΠΎΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠΈ ΠΌΠ°Π» ΠΎΠ±Π΅ΠΌ Π½Π° Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΠΌΡΠ΅ΠΆΠ½ΠΈ Π±Π°ΡΠ°ΡΠ°, Π½ΠΎ ΡΠ΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π° Π½Π΅ Π³ΠΎ ΡΡΠΎΡΠΈΠΌΠ΅ ΡΠΎΠ° Π±ΠΈΠ΄Π΅ΡΡΠΈ Π΄Π²Π°ΡΠ° ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π±Π΅Π° ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ ΡΠΈΠ·ΠΈΡΠ½ΠΈ.
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ Π΄Π΅ΠΊΠ° Π½Π°ΡΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ Π±ΠΈΠ» ΡΠ°ΡΠ½ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π½ ΠΎΠ΄ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈΡΠΈ. Π‘ΠΎ ΡΠ΅Π» Π΄Π° Π³ΠΎ Π²ΠΎΠ΄ΠΈΠΌΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ Π²ΠΎ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠ°ΡΠ° Π½Π°ΡΠΎΠΊΠ°, ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠ²Π°ΠΌΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²Π°ΠΆΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΈ ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ» ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π½Π° ΡΡΠΎΡΠΈΡΠΈ ΠΌΠ΅ΡΡΠ°. ΠΠΎ, ΡΡΠ°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° ΡΡΠΎ ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ²Π° ΡΠΎ Π½ΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΡ Π²Π°ΠΆΠ½Π° Π·Π° Π±Π΅Π»Π΅ΡΠΊΠ°. ΠΠΈΠ΅, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΠΌΠ΅ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π·Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π½Π° ΡΠΈΠΏΠΎΡ Π·Π° Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΠΊΠΎΠ΄.
Π¦ΠΈΠΊΠ»ΠΈΡΠ΅Π½ ΡΠ²ΠΎΠ·. ΠΠΎΠ³ΠΎΡΠ΅, Π·Π±ΠΎΡΡΠ²Π°Π² Π·Π° ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈΠΎΡ ΡΠ²ΠΎΠ· (βΠ·Π°ΠΌΡΡΠ΅Π½ΠΎΡΡΠ° Π½Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠ°β), ΡΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ΅ΡΠ΅ Π³ΠΎ ΠΎΡΠ΅ΠΆΠ½ΡΠ²Π°ΡΠ΅ Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° mypy. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠΎΡΠ°Π²ΠΌΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ Π½Π°ΠΏΠΎΡΠ½ΠΎ Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ mypy Π΄Π° Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠΈΡΠ΅ Π²ΠΈΠ΄ΠΎΠ²ΠΈ ΠΈΠ΄ΠΈΠΎΠΌΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈ ΡΠ²ΠΎΠ·ΠΈ. ΠΠ΅ΠΎΠ΄Π°ΠΌΠ½Π° Π·Π°Π²ΡΡΠΈΠ²ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° ΡΠ΅Π΄ΠΈΠ·Π°ΡΠ½ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΊΠΎΡ Π³ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° mypy Π²ΠΎ Π²ΡΡΠΊΠ° ΡΠΎ ΠΊΡΡΠΆΠ½ΠΈΠΎΡ ΡΠ²ΠΎΠ·. ΠΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π»Π΅Π³ΠΎΠ° ΠΎΠ΄ ΡΠ°Π½ΠΈΡΠ΅ Π΄Π΅Π½ΠΎΠ²ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ, Π½Π°Π·Π°Π΄ ΠΎΠ΄ Alore, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π½ΠΈΠΎΡ ΡΠ°Π·ΠΈΠΊ Π½Π° ΠΊΠΎΡ ΠΏΡΠ²ΠΈΡΠ½ΠΎ Π±Π΅ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ mypy. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠ°ΡΠ° Alore Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΠΎ ΡΠΈΠΊΠ»ΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡΠ²ΠΎΠ·. ΠΠΎΠ΄Π΅ΡΠ½Π°ΡΠ° mypy Π½Π°ΡΠ»Π΅Π΄ΠΈ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° ΠΎΠ΄ ΡΠ²ΠΎΡΠ°ΡΠ° ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½Π°, Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° (ΡΡΠΎ Π±Π΅ΡΠ΅ ΠΎΠ΄Π»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π·Π° Alore). ΠΠ°ΡΡΠΎΠ½ ΡΠ° ΠΎΡΠ΅ΠΆΠ½ΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠΎ ΠΊΡΡΠΆΠ½ΠΈ ΡΠ²ΠΎΠ·ΠΈ, Π³Π»Π°Π²Π½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ° ΡΡΠΎ ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ ΡΠ΅ Π΄Π²ΠΎΡΠΌΠΈΡΠ»Π΅Π½ΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π²ΡΡΡΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ ΠΎΠ΄ ΡΠΈΠΏΠΎΡ. Mypy Π½Π΅ ΠΌΠΎΠΆΠ΅ ΡΠ΅ΠΊΠΎΠ³Π°Ρ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ Π²Π°ΠΊΠ²ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΡΠ°ΠΌΠΊΠ°ΡΠ° Π·Π° ΡΠ²ΠΎΠ·. ΠΠΎ ΠΠ»ΠΎΡΠ΅ Π½Π΅ΠΌΠ°ΡΠ΅ ΡΠ°ΠΊΠ²ΠΈ Π½Π΅ΡΠ°ΡΠ½ΠΎΡΠΈΠΈ. ΠΠΎΡΠΈΡΠ΅ ΠΎΠ΄Π»ΡΠΊΠΈ Π΄ΠΎΠ½Π΅ΡΠ΅Π½ΠΈ Π²ΠΎ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΈ Π½Π° ΡΠ°Π·Π²ΠΎΡΠΎΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΡ ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°Π°Ρ Π½Π΅ΠΏΡΠΈΡΠ°ΡΠ½ΠΎ ΠΈΠ·Π½Π΅Π½Π°Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΎΡ ΠΌΠ½ΠΎΠ³Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΡΠ½Π°.
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ: ΠΏΠ°ΡΠ΅ΠΊΠ° Π΄ΠΎ 5 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠΎΠ΄ ΠΈ Π½ΠΎΠ²ΠΈ Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠΈ
ΠΡΠΎΠ΅ΠΊΡΠΎΡ mypy ΠΏΠΎΠΌΠΈΠ½Π° Π΄ΠΎΠ»Π³ ΠΏΠ°Ρ - ΠΎΠ΄ ΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ²ΠΈ Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ. ΠΠ°ΠΊΠΎ ΡΡΠΎ Π΅Π²ΠΎΠ»ΡΠΈΡΠ°ΡΠ΅ mypy, Π½Π°Π²Π΅ΡΡΡΠ²Π°ΡΠ°ΡΠ° Π·Π° ΡΠΈΠΏΠΎΡ Π½Π° Python Π±Π΅Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈΠ·ΠΈΡΠ°Π½ΠΈ. ΠΠ΅Π½ΠΎΠ²ΠΈΠ²Π΅ ΡΠ΅ ΡΠ°Π·Π²ΠΈ ΠΌΠΎΡΠ΅Π½ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌ ΠΎΠΊΠΎΠ»Ρ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° Python. ΠΠΌΠ° ΠΌΠ΅ΡΡΠΎ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°, ΡΠΎΠ΄ΡΠΆΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° IDE ΠΈ ΡΡΠ΅Π΄Π½ΠΈΡΠΈ, ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΡΠΈΠΏΠΎΡ, ΠΎΠ΄ ΠΊΠΎΠΈ ΡΠ΅ΠΊΠΎΡΠ° ΠΈΠΌΠ° ΡΠ²ΠΎΠΈ Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΈ Π»ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈ.
ΠΠ°ΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π΅ Π²Π΅ΡΠ΅ Π΄Π°Π΄Π΅Π½Π° Π²ΠΎ Dropbox, Π²Π΅ΡΡΠ²Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΓ¨ ΡΡΡΠ΅ ΡΠΌΠ΅ Π²ΠΎ ΡΠ°Π½ΠΈΡΠ΅ Π΄Π΅Π½ΠΎΠ²ΠΈ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄ Π½Π° Python. ΠΠΈΡΠ»Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π°Ρ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π°Ρ.
ΠΠΊΠΎ Π²Π΅ΡΠ΅ Π½Π΅ ΡΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅Π»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π²ΠΎ Π²Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΠ΄ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° Python, ΡΠΎΠ³Π°Ρ Π·Π½Π°ΡΡΠ΅ Π΄Π΅ΠΊΠ° ΡΠ΅Π³Π° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π΄ΠΎΠ±ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΠ΅ Π΄Π²ΠΈΠΆΠΈΡΠ΅ ΠΊΠΎΠ½ ΡΡΠ°ΡΠΈΡΠΊΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅. Π Π°Π·Π³ΠΎΠ²Π°ΡΠ°Π² ΡΠΎ ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ° ΡΠ»ΠΈΡΠ½Π° ΡΡΠ°Π½Π·ΠΈΡΠΈΡΠ°. ΠΠΈΠΊΠΎΡ ΠΎΠ΄ Π½ΠΈΠ² Π½Π΅ Π·Π°ΠΆΠ°Π»ΠΈ. ΠΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Python ΡΠ°Π·ΠΈΠΊ ΠΊΠΎΡ Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΡΠΎΠΎΠ΄Π²Π΅ΡΠ΅Π½ Π·Π° ΡΠ°Π·Π²ΠΎΡ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΎΡΠΊΠΎΠ»ΠΊΡ βΠΎΠ±ΠΈΡΠ΅Π½ Pythonβ.
ΠΠΎΡΠΈΡΡΠ²Π°Π½ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠ°Π»ΠΈ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏ Π²ΠΎ Π²Π°ΡΠΈΡΠ΅ Python ΠΏΡΠΎΠ΅ΠΊΡΠΈ?
ΠΠ·Π²ΠΎΡ: www.habr.com