αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3

αž™αžΎαž„αž”αž„αŸ’αž αžΆαž‰αž‡αžΌαž“αž’αŸ’αž“αž€αž“αžΌαžœαž•αŸ’αž“αŸ‚αž€αž‘αžΈαž”αžΈαž“αŸƒαž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αžŸαž˜αŸ’αž—αžΆαžšαŸˆαž’αŸ†αž–αžΈαž•αŸ’αž›αžΌαžœαžŠαŸ‚αž› Dropbox αž”αžΆαž“αž™αž€αž“αŸ…αž–αŸαž›αž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΌαžŠ Python αŸ”

αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3

β†’ αž•αŸ’αž“αŸ‚αž€αž˜αž»αž“αŸ– αžŠαŸ†αž”αžΌαž„ ΠΈ αž‘αžΈαž–αžΈαžš

αžˆαžΆαž“αžŠαž›αŸ‹ 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αžœαžΆαž™

αž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž‘αŸ€αž (αž“αž·αž„αž€αžΆαžšαž–αŸ’αžšαž½αž™αž”αžΆαžšαž˜αŸ’αž—αž‡αžΆαž‘αžΌαž‘αŸ…αž”αŸ†αž•αž»αžαž‘αžΈαž–αžΈαžšαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„) αž‚αžΊαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž…αŸ†αž“αž½αž“αž€αžΌαžŠαžŠαŸ‚αž›αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αžŠαŸ„αž™αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αž“αŸ…αž€αŸ’αž“αž»αž„ Dropbox αŸ” αž™αžΎαž„αž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž…αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž‘αŸ†αž αŸ†αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αžœαžΆαž™αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ„αž™αž’αž˜αŸ’αž˜αž‡αžΆαžαž· αžŠαž›αŸ‹αž€αžΆαžšαž•αŸ’αžαŸ„αžαž›αžΎαž€αž·αž…αŸ’αž…αžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜ mypy αž›αžΎαž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αž”αŸ’αžšαž—αŸαž‘αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ‚αž›αž‹αž·αžαž·αžœαž“αŸ’αž αž“αž·αž„αžαžΆαž˜αžœαž“αŸ’αžαŸ” αž“αŸ…αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹ αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž˜αž·αž“αž˜αžΆαž“αž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžšαžˆαŸ’αž“αŸ‡αŸ—αžŸαžΆαž˜αž‰αŸ’αž‰αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž’αžΆαž…αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαž€αŸ†αžŽαžΎαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž€αžΌαžŠαž…αŸ†αžŽαžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŠαŸ„αž™αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αžƒαŸ’αž›αžΆαŸ†αž„ Python αžŠαŸαž’αŸ†αž”αŸ†αž•αž»αžαžšαž”αžŸαŸ‹αž™αžΎαž„ (αž‡αžΆαž˜αž½αž™αž€αžΌαžŠ backend) αž˜αžΆαž“αž€αžΌαžŠαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž‡αž·αž 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αŸ” αž€αžΆαžšαž„αžΆαžšαž›αžΎαž€αžΆαžšαžœαžΆαž™αž›αŸαžαž€αžΌαžŠαž‹αž·αžαž·αžœαž“αŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž”αŸ’αžšαž αŸ‚αž›αž”αžΈαž†αŸ’αž“αžΆαŸ†αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ Mypy αž‚αžΆαŸ†αž‘αŸ’αžšαž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αŸ—αž“αŸƒαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž€αžΌαžŠ αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž™αž’αžαŸ’αžαž”αž‘αŸ” αž‡αžΆαž–αž·αžŸαŸαžŸ αž™αžΎαž„αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž€αžΌαžŠαžŠαŸ‚αž›αž˜αžΆαž“αž—αžΆαž–αž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž—αŸαž‘ αžŠαžΌαž…αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž”αŸ’αžšαž—αŸαž‘αž˜αž½αž™αŸ” Any αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž…αŸ†αžŽαžΆαžšβ€‹αž–αž“αŸ’αž™αž›αŸ‹β€‹αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹β€‹αž”αžΆαž“ αž¬β€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž’αŸ’αžœαžΈαŸ—β€‹αžŠαžΌαž…αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž“αžΆαŸ†αž…αžΌαž›β€‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™β€‹αž—αžΆαž‚αžΈβ€‹αž‘αžΈαž”αžΈβ€‹αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž…αŸ†αžŽαžΆαžšβ€‹αž–αž“αŸ’αž™αž›αŸ‹β€‹αž”αŸ’αžšαž—αŸαž‘αŸ” αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αž“αŸ…αž€αŸ’αž“αž»αž„ Dropbox αž™αžΎαž„αž”αžΆαž“αžšαž½αž˜αž…αŸ†αžŽαŸ‚αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαž—αŸαž‘ (αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž αŸ…αžαžΆ stub) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„ Python αž€αžŽαŸ’αžαžΆαž›αŸ” αž”αŸ’αžšαž—αŸαž‘.

αž™αžΎαž„αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž (αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ PEPs αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹) αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžαŸ’αž˜αžΈαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαž—αŸαž‘αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž˜αžΆαž“αž”αŸ’αžšαž—αŸαž‘αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ†αžšαžΌ Python αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸαž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αŸƒαžšαžΏαž„αž“αŸαŸ‡ TypeDictαžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž”αŸ’αžšαž—αŸαž‘αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž…αž“αžΆαž“αž»αž€αŸ’αžšαž˜αžŠαžΌαž… JSON αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αžŸαŸ„αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαžαŸαžš αžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž“αŸƒαž”αŸ’αžšαž—αŸαž‘αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž™αžΎαž„αž“αžΉαž„αž”αž“αŸ’αžαž–αž„αŸ’αžšαžΈαž€αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαž—αŸαž‘αŸ” αž‡αŸ†αž αžΆαž“αž”αž“αŸ’αž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ†αž“αž„αž‡αžΆαž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž˜αžαŸ’αžαž—αžΆαž–αž›αŸαžαžšαž”αžŸαŸ‹ Python αŸ”

αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3
αž…αŸ†αž“αž½αž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ– αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ

αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3
αž…αŸ†αž“αž½αž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ– αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ

αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3
αž…αŸ†αž“αž½αž“αžŸαžšαž»αž”αž“αŸƒαž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹

αž“αŸαŸ‡αž‡αžΆαž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒαž˜αž»αžαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΌαžŠαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ DropboxαŸ–

αž—αžΆαž–αž˜αŸ‰αžαŸ‹αž…αžαŸ‹αž“αŸƒαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ” αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαž“β€‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšβ€‹αž‡αžΆβ€‹αž”αžŽαŸ’αžαžΎαžšαŸ—β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž—αžΆαž–β€‹αž˜αŸ‰αžαŸ‹αž…αžαŸ‹β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž€αžαŸ‹αž…αŸ†αžŽαžΆαŸ†β€‹αž€αžΌαžŠβ€‹αžαŸ’αž˜αžΈαŸ” αž™αžΎαž„αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αž“αŸ’αž›αžΉαŸ‡αžαŸ’αž›αžΈαŸ—αžŠαŸ‚αž›αžŸαŸ’αž“αžΎαž±αŸ’αž™αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αžšαž½αž…αž αžΎαž™αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž‘αžΆαž˜αž‘αžΆαžšαž”αŸ’αžšαž—αŸαž‘αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš Python αžαŸ’αž˜αžΈ αž“αž·αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αŸ”

αžœαžΆαž™αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαŸ” αž™αžΎαž„αž•αŸ’αž‰αžΎαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž”αŸ’αžšαž…αžΆαŸ†αžŸαž”αŸ’αžαžΆαž αŸαžŠαž›αŸ‹αž€αŸ’αžšαž»αž˜αž’αŸ†αž–αžΈαž€αž˜αŸ’αžšαž·αžαž“αŸƒαž€αžΆαžšαžœαžΆαž™αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž€αžΌαžŠαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αžŠαŸ†αž”αžΌαž“αŸ’αž˜αžΆαž“αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αž½αžšαž€αžαŸ‹αžŸαŸ†αž‚αžΆαž›αŸ‹αž‡αžΆαž˜αž»αž“αžŸαž·αž“αŸ”

αž—αžΆαž–αž›αŸ’αž”αžΈαž›αŸ’αž”αžΆαž‰αž“αŸƒ mypy αŸ” αž™αžΎαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ mypy αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αžΆαž“αžΆ αž αžΎαž™αž“αž·αž™αžΆαž™αž‘αŸ…αž€αžΆαž“αŸ‹αž€αŸ’αžšαž»αž˜αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž½αž™αž–αž½αž€αž‚αŸαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ’αžšαž—αŸαž‘αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ”

αž€αžΆαžšαž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαŸ” αž™αžΎαž„αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαž˜αž€αžΆαž›αž€αŸ†αžŽαžαŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž”αž‰αŸ’αž αžΆαž’αŸ†αŸ—αŸ” αž™αžΎαž„αžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡ (αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž”αž„αŸ’αž€αžΎαžαž—αžΆαžŸαžΆαžαŸ’αž˜αžΈαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“ mypy!)

αž€αžΆαžšαžŸαž˜αŸ’αžαŸ‚αž„αŸ” αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹ mypy αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŠαŸαž˜αž·αž“ αž“αž·αž„ mypyc αŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αžΆαžαŸ‹αž—αžΆαž–αžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹ αž“αž·αž„αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αžΌαžŠαž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αŸ”

αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αŸ” αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸαžŠαžΎαž˜αŸ’αž”αžΈαž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš mypy αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’αžŠαŸ‚αž›αž–αŸαž‰αž“αž·αž™αž˜αž“αŸ…αž›αžΎ Dropbox αŸ” αž“αŸαŸ‡αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‘αžΆαŸ†αž„ PyCharm, Vim αž“αž·αž„ VS Code αŸ” αž“αŸαŸ‡αž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αžŠαž›αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αž€αžΌαžŠ αž“αž·αž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αžœαžΆαŸ” αž”αŸ’αžšαž—αŸαž‘β€‹αž“αŸƒβ€‹αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–β€‹αž‘αžΆαŸ†αž„β€‹αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αžšαžΏαž„β€‹αž’αž˜αŸ’αž˜αžαžΆβ€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž…αŸ†αžŽαžΆαŸ†β€‹αž€αžΌαžŠβ€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžŸαŸ’αžšαžΆαž”αŸ‹αŸ”

αž€αžΆαžšαžœαž·αž—αžΆαž‚αž‹αž·αžαž·αžœαž“αŸ’αžαŸ” αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸαžŠαžΎαž˜αŸ’αž”αžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αž αžαŸ’αžαž›αŸαžαžΆαž˜αž»αžαž„αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžœαž·αž—αžΆαž‚αž‹αž·αžαž·αžœαž“αŸ’αžαŸ” αž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αžαŸ‚αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž‡αž½αž™αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αž€αžΌαžŠαžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αž…αŸ’αžšαžΎαž“αŸ”

αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž—αžΆαž‚αžΈαž‘αžΈαž”αžΈαŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž‡αžΆαž…αŸ’αžšαžΎαž“αžšαž”αžŸαŸ‹αž™αžΎαž„αž”αŸ’αžšαžΎ SQLAlchemy toolkit αŸ” αžœαžΆαž‘αžΆαž‰αž™αž€αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αžαžΆαž˜αžœαž“αŸ’αžαžšαž”αžŸαŸ‹ Python αžŠαŸ‚αž›αž”αŸ’αžšαž—αŸαž‘ PEP 484 αž˜αž·αž“αž’αžΆαž…αž’αŸ’αžœαžΎαž‚αŸ†αžšαžΌαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž”αžΆαž“αž‘αŸαŸ” αž™αžΎαž„αžŸαŸ’αžšαž”αžαžΆαž˜ PEP 561 αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžš stub αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆ αž αžΎαž™αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ mypy (αž”αŸ’αžšαž—αž–β€‹αž”αžΎαž€β€‹αž…αŸ†αž ) αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž’αŸ„αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš SQLAlchemy αŸ”

αž€αžΆαžšαž›αŸ†αž”αžΆαž€αžŠαŸ‚αž›αž™αžΎαž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡

αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹ 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αžœαžΆαž™αž˜αž·αž“αžαŸ‚αž„αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž‘αŸαŸ” αž“αŸ…β€‹αž›αžΎβ€‹αž•αŸ’αž›αžΌαžœβ€‹αž“αŸαŸ‡ αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž‡αž½αž”β€‹αž”αŸ’αžšαž‘αŸ‡β€‹αž“αžΉαž„β€‹αžšαž“αŸ’αž’β€‹αž‡αžΆαž…αŸ’αžšαžΎαž“ αž“αž·αž„β€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αžαž»αžŸβ€‹αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“β€‹αž‘αŸ€αžαŸ” αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž™αžΎαž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αŸ” αž™αžΎαž„αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž€αžΆαžšαž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ†αž–αžΈαž–αž½αž€αž‚αŸαž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αžŠαž‘αŸƒαž±αŸ’αž™αž‡αŸ€αžŸαž•αž»αžαž–αžΈαž”αž‰αŸ’αž αžΆαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸαŸ‡αŸ”

αž”αžΆαžαŸ‹αž―αž€αžŸαžΆαžšαŸ” αž™αžΎαž„αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ„αž™αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž―αž€αžŸαžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αžαžΌαž…αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžšαž½αž˜β€‹αž”αž‰αŸ’αž…αžΌαž›β€‹αž€αŸ’αž“αž»αž„β€‹αž―αž€αžŸαžΆαžšβ€‹αž‘αžΆαŸ†αž„β€‹αž“αŸαŸ‡β€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž‘αŸαŸ” αž―αž€αžŸαžΆαžšβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž‘αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž”αž‰αŸ’αž‡αžΈβ€‹αžŸαŸ’αž€αŸαž“β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž…αŸ†αžŽαžΆαžšβ€‹αž–αž“αŸ’αž™αž›αŸ‹β€‹αžŠαŸ†αž”αžΌαž„β€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž–αž½αž€αžœαžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž“αžΆαŸ†αž…αžΌαž›αž–αžΈαž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…αžœαž·αžŸαžΆαž›αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž“αŸ„αŸ‡αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžαž˜αŸ’αž›αŸƒαžŠαžΌαž…αž‡αžΆ AnyαžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ” αž“αŸαŸ‡αž“αžΆαŸ†αž±αŸ’αž™αž”αžΆαžαŸ‹αž”αž„αŸ‹αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž€αžΆαžšαžœαžΆαž™αž’αžαŸ’αžαž”αž‘ αž‡αžΆαž–αž·αžŸαŸαžŸαž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž”αžΌαž„αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αž›αŸ’αž’αž‚αž½αžšαž±αŸ’αž™αž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž›αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αž“αŸαŸ‡ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αž˜αŸ’αž˜αžαžΆαž˜αž½αž™αž‚αžΊαžαžΆαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž―αž€αžŸαžΆαžšαž‘αŸ…αž€αŸ’αž“αž»αž„αžœαž·αžŸαžΆαž›αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αž αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ†αž”αž“αŸ‹αžŠαžΆαž…αŸ‹αžŸαŸ’αžšαž™αžΆαž›αž–αžΈαžšαž“αŸƒαž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ αžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αžŠαŸ„αž™αž―αž€αžšαžΆαž‡αŸ’αž™αž–αžΈαž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€ αž”αŸ’αžšαž—αŸαž‘αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αžšαž½αž…αž αžΎαž™ αžœαžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αžαžΆαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαžαŸ†αž”αž“αŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αž†αž”αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αŸ” αž“αŸαŸ‡αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž…αŸ†αž–αŸ„αŸ‡αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ” αž€αŸ’αžšαž‘αŸαž€αž˜αž€αž˜αžΎαž›αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž™αžΎαž„αžŠαžΉαž„αžαžΆαž™αžΎαž„αž‚αž½αžšαžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αž˜αŸ‰αžΌαžŒαž»αž›αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αž“αžΌαž›αž‘αŸ…αžαŸ†αž”αž“αŸ‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αžšαž”αžŸαŸ‹ mypy αž†αžΆαž”αŸ‹αŸ—αž“αŸαŸ‡αŸ” αž“αŸαŸ‡αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αž€αžΆαž“αŸ‹αžαŸ‚αž’αžΆαž…αž–αŸ’αž™αžΆαž€αžšαžŽαŸαž”αžΆαž“αŸ”

αžŸαžšαžŸαŸαžšαž€αžΌαžŠαž…αžΆαžŸαŸ‹αŸ” αž“αŸ…αž–αŸαž›αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž™αžΎαž„αž˜αžΆαž“αž”αŸ’αžšαž αŸ‚αž› 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ” αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαž€αžΆαžšαž€αžαŸ‹αž…αŸ†αžŽαžΆαŸ†αž€αžΌαžŠαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ„αŸ‡αž‘αŸαŸ” αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸαž˜αž½αž™αžˆαŸ’αž˜αŸ„αŸ‡αžαžΆ PyAnnotate αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαž˜αžΌαž›αž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ’αžšαž—αŸαž‘αž“αŸ…αž–αŸαž›αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž’αžΆαž…αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαž—αŸαž‘αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΌαžŠαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž”αžΆαž“αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž™αžΎαž„αž˜αž·αž“αž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž€αžΆαžšαž’αž“αž»αž˜αŸαžαž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αž“αŸƒαž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αž‘αŸαŸ” αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ’αžšαž—αŸαž‘αž˜αžΆαž“αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœ αž αžΎαž™αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αžŠαŸ„αž™αžŠαŸƒαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž™αžΎαž„αž”αžΆαž“αž‚αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžšαžΆαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αžΌαžŠ αž¬αž”αŸ’αžšαž˜αžΌαž›αž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ’αžšαž—αŸαž‘αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚αž˜αž½αž™αž…αŸ†αž“αž½αž“αžαžΌαž…αž“αŸƒαžŸαŸ†αžŽαžΎαž”αžŽαŸ’αžαžΆαž‰αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž˜αž·αž“αž’αŸ’αžœαžΎαž‘αŸ αžŠαŸ„αž™αžŸαžΆαžšαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΆαŸ†αž„αž–αžΈαžšαž“αŸαŸ‡αž˜αžΆαž“αž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αž“αžΆαž€αŸ‹αžαŸ’αž›αžΆαŸ†αž„αž–αŸαž€αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αž…αŸ†αžŽαžΆαŸ†αžŠαŸ„αž™αžŠαŸƒαžŠαŸ„αž™αž˜αŸ’αž…αžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŠαžΉαž€αž“αžΆαŸ†αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ…αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž™αžΎαž„αžšαŸ€αž”αž…αŸ†αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž˜αŸ‰αžΌαžŒαž»αž› αž“αž·αž„αž˜αž»αžαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž‡αžΆαž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž”αŸ’αžšαž—αŸαž‘αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΌαžŒαž»αž›αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αž›αŸ‚αž„αžšαžΆαž”αŸ‹αžšαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž…αžΆαžŸαŸ‹αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αž˜αžΈαž‚αžΊαž›αŸ‚αž„αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸ†αžŽαžΆαŸ†αž‘αŸ€αžαž αžΎαž™αŸ” αž™αžΎαž„αž€αŸαž€αŸ†αž–αž»αž„αž–αž·αžŸαŸ„αž’αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚αž‹αž·αžαž·αžœαž“αŸ’αž αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž”αŸ’αžšαž—αŸαž‘αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΌαžŠαž€αŸαžšαŸ’αžαž·αŸαŸ”

αž€αžΆαžšβ€‹αž“αžΆαŸ†β€‹αž…αžΌαž›β€‹αžŸαŸŠαžΈαž€αŸ’αž›αžΌαŸ” αžαžΆαž„αž›αžΎ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž“αžΆαŸ†αž…αžΌαž›αžαžΆαž˜αžšαž„αŸ’αžœαž·αž› ("αž—αžΆαž–αž…αŸ’αžšαž”αžΌαž€αž…αŸ’αžšαž”αž›αŸ‹") αžŠαŸ‚αž›αž‡αžΆαž’αžαŸ’αžαž·αž—αžΆαž–αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž’αŸ„αž™αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“ mypy αŸ” αž™αžΎαž„αž€αŸαžαŸ’αžšαžΌαžœαžαž·αžαžαŸ†αž’αŸ’αžœαžΎαž±αŸ’αž™ mypy αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž–αŸ’αžœαž“αžΆαž˜αž‚αŸ’αžšαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘ αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž˜αž€αž–αžΈαž€αžΆαžšαž“αžΆαŸ†αž…αžΌαž›αžαžΆαž˜αžœαžŠαŸ’αžαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž‚αž˜αŸ’αžšαŸ„αž„αžšαž…αž“αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž‘αžΎαž„αžœαž·αž‰ αžŠαŸ‚αž›αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžšαž”αžŸαŸ‹ mypy αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž“αžΆαŸ†αž…αžΌαž›αžŸαžΆαžšαž‡αžΆαžšαž„αŸ’αžœαž„αŸ‹αŸ” αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž–αž·αžαž‡αžΆαž€αžΎαžαž…αŸαž‰αž–αžΈαžαŸ’αž„αŸƒαžŠαŸ†αž”αžΌαž„αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„ αžαŸ’αžšαž›αž”αŸ‹αž–αžΈ Alore αžŠαŸ‚αž›αž‡αžΆαž—αžΆαžŸαžΆαž’αž”αŸ‹αžšαŸ†αžŠαŸ‚αž›αž‚αž˜αŸ’αžšαŸ„αž„ mypy αž•αŸ’αžαŸ„αžαžŠαŸ†αž”αžΌαž„αŸ” αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Alore αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αžΆαŸ†αž…αžΌαž›αžαžΆαž˜αžœαžŠαŸ’αžαŸ” mypy αžŸαž˜αŸαž™αž‘αŸ†αž“αžΎαž”αž”αžΆαž“αž‘αž‘αž½αž›αž˜αžšαžαž€αž–αžΈαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‚αŸ†αž“αž·αžαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž»αž“αžšαž”αžŸαŸ‹αžœαžΆ (αžŠαŸ‚αž›αžŸαž˜αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Alore) αŸ” Python αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž“αžΆαŸ†β€‹αž…αžΌαž›β€‹αžšαžΆαž„αž‡αžΆαžšαž„αŸ’αžœαž„αŸ‹β€‹αž˜αžΆαž“β€‹αž€αžΆαžšβ€‹αž›αŸ†αž”αžΆαž€ αž‡αžΆβ€‹αž…αž˜αŸ’αž”αž„β€‹αžŠαŸ„αž™β€‹αžŸαžΆαžšβ€‹αž€αžΆαžšβ€‹αž”αž‰αŸ’αž…αŸαž‰β€‹αž˜αžαž·β€‹αž˜αž·αž“β€‹αž…αŸ’αž”αžΆαžŸαŸ‹β€‹αž›αžΆαžŸαŸ‹αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž…αžΆαžαŸ‹αžαžΆαŸ†αž„αž˜αž½αž™αž–αž·αžαž‡αžΆαž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž‡αŸ†αž“αž½αžŸαž”αŸ’αžšαž—αŸαž‘αž˜αž½αž™αŸ” Mypy αž˜αž·αž“αžαŸ‚αž„αžαŸ‚αž’αžΆαž…αžšαž€αžƒαžΎαž‰αžšαžΏαž„αžŠαžΌαž…αž“αŸαŸ‡αž‘αŸ αžšαž αžΌαžαžŠαž›αŸ‹αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž“αžΆαŸ†αž…αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž˜αž·αž“αž˜αžΆαž“αž—αžΆαž–αž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ Alore αž‘αŸαŸ” αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž˜αž·αž“αž›αŸ’αž’αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž”αžΌαž„αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αžΆαžšαž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž›αž˜αž·αž“αž›αŸ’αž’αžŠαž›αŸ‹αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αž†αŸ’αž“αžΆαŸ†αž€αŸ’αžšαŸ„αž™αŸ”

αž›αž‘αŸ’αž’αž•αž›αŸ– αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹ 5 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ αž“αž·αž„αž‡αžΎαž„αž˜αŸαžƒαžαŸ’αž˜αžΈαŸ”

αž‚αž˜αŸ’αžšαŸ„αž„ mypy αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž•αŸ’αž›αžΌαžœαžŠαŸαžœαŸ‚αž„αž†αŸ’αž„αžΆαž™ - αž–αžΈαž‚αŸ†αžšαžΌαžŠαžΎαž˜αžŠαž›αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž”αŸ’αžšαž—αŸαž‘αž€αžΌαžŠαž•αž›αž·αžαž€αž˜αŸ’αž˜αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› mypy αž˜αžΆαž“αž€αžΆαžšαžœαž·αžœαžŒαŸ’αžαž“αŸ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž”αŸ’αžšαž—αŸαž‘ Python αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ” αžŸαž–αŸ’αžœαžαŸ’αž„αŸƒαž“αŸαŸ‡ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸαž€αžΌαžŠαŸαž˜αžΆαž“αž₯αž‘αŸ’αž’αž·αž–αž›αž˜αž½αž™αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž‡αž»αŸ†αžœαž·αž‰αž€αžΆαžšαžœαžΆαž™αž”αž‰αŸ’αž…αžΌαž›αž€αžΌαžŠ PythonαŸ” αžœαžΆαž˜αžΆαž“αž€αž“αŸ’αž›αŸ‚αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αŸ†αž“αž½αž™αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ αžœαžΆαž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ IDE αž“αž·αž„αž’αŸ’αž“αž€αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› αžœαžΆαž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž—αŸαž‘αž‡αžΆαž…αŸ’αžšαžΎαž“ αžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž· αž“αž·αž„αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžšαž½αž…αž αžΎαž™αž“αŸ… Dropbox αžαŸ’αž‰αž»αŸ†αž‡αžΏαžαžΆαž™αžΎαž„αž“αŸ…αžαŸ‚αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž”αžΌαž„αž“αŸƒαž€αžΆαžšαžœαžΆαž™αž›αŸαžαž€αžΌαžŠ Python αŸ” αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αž“αžΉαž„αž”αž“αŸ’αžαžœαž·αžœαžαŸ’αž αž“αž·αž„αž€αŸ‚αž›αž˜αŸ’αž’αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž‘αžΆαž“αŸ‹αž”αžΆαž“αž”αŸ’αžšαžΎαž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž”αŸ’αžšαž—αŸαž‘αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„ Python αžαŸ’αž“αžΆαžαž’αŸ†αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ αžŸαžΌαž˜αžŠαžΉαž„αžαžΆαž–αŸαž›αž“αŸαŸ‡αž‡αžΆαž–αŸαž›αžœαŸαž›αžΆαžŠαŸαž›αŸ’αž’αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžšαž‹αž·αžαž·αžœαž“αŸ’αžαŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαŸ” αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αž½αž€αž‚αŸαžŸαŸ„αž€αžŸαŸ’αžαžΆαž™αžœαžΆαž‘αŸαŸ” αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αž’αŸ’αžœαžΎαž±αŸ’αž™ Python αž€αŸ’αž›αžΆαž™αž‡αžΆαž—αžΆαžŸαžΆαžŠαŸ‚αž›αžŸαŸαž€αŸ’αžαž·αžŸαž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‚αž˜αŸ’αžšαŸ„αž„αž’αŸ†αŸ—αž‡αžΆαž„ "Python αž’αž˜αŸ’αž˜αžαžΆ"αŸ”

αž’αŸ’αž“αž€αž’αžΆαž“αž‡αžΆαž‘αžΈαžŸαŸ’αžšαž‘αžΆαž‰αŸ‹! αžαžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαž—αŸαž‘ checking αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„ Python αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ?

αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3
αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš 4 αž›αžΆαž“αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹