āĻĢāĻžāĻ‰āĻ¸ā§āĻŸā§‡āĻ° āĻĒāĻŸāĻ­ā§‚āĻŽāĻŋ āĻ•āĻžāĻœ, āĻĒā§āĻ°āĻĨāĻŽ āĻ–āĻŖā§āĻĄ: āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻĢāĻžāĻ‰āĻ¸ā§āĻŸā§‡āĻ° āĻĒāĻŸāĻ­ā§‚āĻŽāĻŋ āĻ•āĻžāĻœ, āĻĒā§āĻ°āĻĨāĻŽ āĻ–āĻŖā§āĻĄ: āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻ†āĻŽāĻŋ āĻāĻ­āĻžāĻŦā§‡ āĻŦāĻžāĻāĻšāĻ¤ā§‡ āĻāĻ˛āĻžāĻŽ āĻ•āĻŋāĻ­āĻžāĻŦā§‡?

āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻĻāĻŋāĻ¨ āĻ†āĻ—ā§‡ āĻ†āĻŽāĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ—āĻŖāĻ¨āĻž āĻāĻŦāĻ‚ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¸āĻš āĻĒā§āĻ°āĻšā§āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻŦā§āĻ¯āĻžāĻ•āĻ—ā§āĻ°āĻžāĻ‰āĻ¨ā§āĻĄ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻŋāĻ˛āĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸ āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ†āĻ¸āĻžāĻ° āĻ†āĻ—ā§‡, āĻ•ā§āĻ°ā§‹āĻ¨-āĻ˛āĻžā§āĻšāĻŋāĻ‚ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ›āĻŋāĻ˛: āĻāĻ•āĻŸāĻŋ āĻ˛ā§āĻĒ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•ā§‹āĻ°ā§‹āĻŸāĻŋāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ—ā§āĻ°ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž - āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ—ā§āĻ°āĻšāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯ āĻšāĻ¤ā§‡ āĻĻā§‡āĻ–āĻž āĻ—ā§‡āĻ›ā§‡ āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻĄāĻœāĻ¨ āĻĄāĻœāĻ¨ āĻāĻŦāĻ‚ āĻļāĻ¤ āĻļāĻ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•āĻ°āĻŸāĻŋāĻ¨ āĻ›āĻŋāĻ˛āĨ¤ , āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻ¯āĻ–āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻĻā§āĻ‡ āĻšāĻžāĻœāĻžāĻ° āĻ›āĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻ†āĻŽāĻžāĻ•ā§‡ āĻāĻ•āĻœāĻ¨ āĻĻāĻžāĻ˛āĻžāĻ˛, āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻœāĻ¨ āĻ•āĻ°ā§āĻŽā§€ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŸāĻžāĻ¸ā§āĻ• āĻ¸āĻžāĻ°āĻŋ āĻ¸āĻžāĻœāĻžāĻ¨ā§‹āĻ° āĻ•āĻĨāĻž āĻ­āĻžāĻŦāĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻŽāĻŋ āĻ¸ā§‡āĻ˛āĻžāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ, āĻ¯āĻž āĻ†āĻŽāĻŋ āĻ†āĻ—ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ…āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻŋāĻ° āĻ•āĻžāĻ°āĻŖā§‡, āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻĄā§āĻŦ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋ āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻ˛ā§‡āĻ–āĻ• āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤.

āĻ†āĻŽāĻŋ āĻāĻŸāĻŋ āĻŦāĻ˛āĻŦ, āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ–ā§āĻŦ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĻāĻ˛ā§‡āĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻŦā§‡āĻļ āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ˛ā§‡āĻ–āĻ• āĻ¨āĻŋāĻœā§‡āĻ‡ āĻŦāĻ˛ā§‡āĻ›ā§‡āĻ¨ āĻ¯ā§‡ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸ āĻĒā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ā§‡ āĻ°ā§‹āĻ˛ āĻ†āĻ‰āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§, āĻĻā§āĻ°ā§āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻŸāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻ†āĻŽāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ›āĻŋāĻ˛ āĻ¨āĻž, āĻāĻŸāĻŋ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ•āĻžāĻœā§‡āĻ° āĻ—ā§āĻ°ā§āĻĒ āĻ˛āĻžā§āĻš āĻ¸āĻš (āĻĻā§‡āĻ–ā§āĻ¨āĨ¤ āĻ—ā§āĻ°ā§āĻĒ) āĻ˛ā§‡āĻ–āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻŦāĻ¨ā§āĻ§, āĻ¤āĻŦā§‡ āĻ•āĻžāĻœ āĻšāĻ˛āĻ›ā§‡ āĻāĻ• āĻŽāĻžāĻ¸ āĻ§āĻ°ā§‡āĨ¤ āĻ¯āĻžāĻ‡ āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨, āĻ˛ā§‡āĻ–āĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻļā§āĻ­āĻ•āĻžāĻŽāĻ¨āĻž āĻāĻŦāĻ‚ āĻļā§āĻ­āĻ•āĻžāĻŽāĻ¨āĻž, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ lib-āĻ āĻ•āĻžāĻœ āĻ•āĻ°āĻž āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡... āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡, āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋ āĻ†āĻŽāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻŸā§āĻ˛āĻŸāĻŋ āĻ†āĻŽāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻ¯āĻžāĻāĻ¤āĻ¸ā§‡āĻāĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›ā§‡āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ•āĻŋāĻ›ā§ āĻŸāĻžāĻ¸ā§āĻ•ā§‡āĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻœāĻ¨ā§āĻ¯ 2-3āĻŸāĻŋ HTTP āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ›āĻŋāĻ˛, āĻ¤āĻžāĻ‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ“, āĻ†āĻŽāĻ°āĻž 4 āĻšāĻžāĻœāĻžāĻ° āĻŸāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ, āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋ 2 āĻ˜āĻ¨ā§āĻŸāĻžāĻ¯āĻŧ - āĻ–ā§āĻŦ āĻ­āĻžāĻ˛ āĻ¨āĻ¯āĻŧ... āĻ†āĻŽāĻŋ āĻāĻ• āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¸ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ•āĻ°ā§āĻŽā§€āĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻžāĻœāĨ¤ aiohttp āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻĒā§āĻ˛ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻāĻ•āĻŸā§ āĻŦā§‡āĻļāĻŋ āĻāĻ–āĻžāĻ¨ā§‡.

āĻ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°ā§‡ āĻ–ā§‹āĻāĻœ āĻ¨āĻŋāĻ¤ā§‡ āĻ˛āĻžāĻ—āĻ˛āĻžāĻŽ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ—ā§‡āĻ›ā§‡! āĻ¸ā§‡āĻ˛āĻžāĻ°āĻŋ āĻ¸ā§āĻ°āĻˇā§āĻŸāĻžāĻ°āĻž, āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡, āĻ†āĻŽāĻŋ āĻāĻŸāĻž āĻŦā§āĻāĻ¤ā§‡ āĻ¸ā§‹āĻ˛ā§‡āĻŽāĻ•ā§‡ āĻœāĻŋāĻœā§āĻžāĻžāĻ¸āĻž āĻ•āĻ°ā§āĻ¨, āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ Faust, āĻŽā§‚āĻ˛āĻ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ°āĻŦāĻŋāĻ¨ āĻšā§āĻĄ. āĻĢāĻžāĻ‰āĻ¸ā§āĻŸ āĻ•āĻžāĻĢāĻ•āĻž āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻ¨ā§āĻĒā§āĻ°āĻžāĻŖāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻ•āĻžāĻĢāĻ•āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§āĻ°ā§‹āĻ•āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, rocksdb āĻāĻœā§‡āĻ¨ā§āĻŸāĻĻā§‡āĻ° āĻ•āĻžāĻœā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡āĻ“ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸āĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻĻā§āĻ°ā§āĻ¤ āĻ¤ā§āĻ˛āĻ¨āĻž āĻĒāĻ°ā§‡āĻ°āĻŸāĻŋāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ› āĻĨā§‡āĻ•ā§‡ āĻ¸ā§‡āĻ˛āĻžāĻ°āĻŋ āĻāĻŦāĻ‚ āĻĢāĻžāĻ¸ā§āĻŸ: āĻ¤āĻžāĻĻā§‡āĻ° āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯, āĻĻāĻžāĻ˛āĻžāĻ˛āĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ•āĻžāĻœ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŦā§‡āĻļ āĻ¸āĻšāĻœ, āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻĢāĻžāĻ¸ā§āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻšāĻŽā§ŽāĻ•āĻžāĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ— āĻ†āĻ•āĻ°ā§āĻˇāĻŖ āĻ•āĻ°ā§‡ - āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻ•ā§āĻ°āĻŽāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻžāĨ¤

āĻ†āĻŽāĻ°āĻž āĻ•āĻŋ āĻ•āĻ°āĻŋ?

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¸āĻŋāĻ°āĻŋāĻœā§‡āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡, āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĻā§‡āĻ–āĻžāĻŦ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Faust āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŦā§āĻ¯āĻžāĻ•āĻ—ā§āĻ°āĻžāĻ‰āĻ¨ā§āĻĄā§‡āĻ° āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ‰āĻ¤ā§āĻ¸ āĻšāĻŦā§‡, āĻ¨āĻžāĻŽ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, alphavantage.co. āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻŦ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻœā§‡āĻ¨ā§āĻŸ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧ (āĻ¸āĻŋāĻ™ā§āĻ•, āĻŦāĻŋāĻˇāĻ¯āĻŧ, āĻĒāĻžāĻ°ā§āĻŸāĻŋāĻļāĻ¨), āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ (āĻ•ā§āĻ°āĻ¨) āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ, āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻĢāĻžāĻ¸ā§āĻŸ āĻ•ā§āĻ˛āĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ (āĻāĻ•āĻŸāĻŋ āĻ°â€ā§āĻ¯āĻžāĻĒāĻžāĻ° āĻ“āĻ­āĻžāĻ° āĻ•ā§āĻ˛āĻŋāĻ•), āĻ¸āĻšāĻœ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻļā§‡āĻˇā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻžāĻĄāĻ— āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŦ ( āĻŦāĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻ•āĻžāĻœ) āĻāĻŦāĻ‚ āĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ¸āĻ‚āĻ—ā§ƒāĻšā§€āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ mongodb āĻāĻŦāĻ‚ āĻŽā§‹āĻŸāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤

āĻĒā§āĻ¨āĻļā§āĻš. āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻ¨ā§āĻšā§āĻ›ā§‡āĻĻāĻŸāĻŋ āĻ¯ā§‡ āĻ†āĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¤āĻžāĻ° āĻŦāĻŋāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻļā§‡āĻˇ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻļā§‡āĻˇā§‡ āĻĒāĻžāĻ āĻ• āĻāĻ–āĻ¨āĻ“ āĻāĻ°āĻ•āĻŽ āĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨:

āĻĢāĻžāĻ‰āĻ¸ā§āĻŸā§‡āĻ° āĻĒāĻŸāĻ­ā§‚āĻŽāĻŋ āĻ•āĻžāĻœ, āĻĒā§āĻ°āĻĨāĻŽ āĻ–āĻŖā§āĻĄ: āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž

āĻ†āĻŽāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻāĻ‡ āĻ•āĻžāĻ°āĻŖā§‡, āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻ•ā§€ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦā§‡ āĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•:

  1. āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋāĻœ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨ (āĻ˛āĻžāĻ­ āĻāĻŦāĻ‚ āĻ•ā§āĻˇāĻ¤āĻŋ, āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸ āĻļā§€āĻŸ, āĻ¨āĻ—āĻĻ āĻĒā§āĻ°āĻŦāĻžāĻš - āĻ—āĻ¤ āĻŦāĻ›āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯) - āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤
  2. āĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻ• āĻĄā§‡āĻŸāĻž āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨ (āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŸā§āĻ°ā§‡āĻĄāĻŋāĻ‚ āĻŦāĻ›āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻŸā§āĻ°ā§‡āĻĄāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸āĻŽāĻžāĻĒāĻ¨ā§€ āĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻšāĻ°āĻŽ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§āĻ¨) - āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤
  3. āĻ¸āĻžāĻŽā§āĻĒā§āĻ°āĻ¤āĻŋāĻ• āĻŸā§āĻ°ā§‡āĻĄāĻŋāĻ‚ āĻĄā§‡āĻŸāĻž āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨ - āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤
  4. āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§‚āĻšāĻ•ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœāĻĄ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨ - āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤

āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻ•ā§āĻ°ā§āĻ¯āĻžāĻš āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻŋ: āĻšāĻ°ā§āĻŸāĻ¨

āĻ†āĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻ›āĻŋ

āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽāĻŸāĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€, āĻ¤āĻŦā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¯āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻšāĻ˛ āĻ•āĻžāĻĢāĻ•āĻž (āĻāĻŦāĻ‚ āĻšāĻŋāĻĄāĻŧāĻŋāĻ¯āĻŧāĻžāĻ–āĻžāĻ¨āĻž - āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§‡), āĻ•āĻžāĻĢāĻĄā§āĻ°āĻĒ (āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻžāĻ‡), āĻŽāĻ™ā§āĻ—ā§‹āĻĄāĻŦāĻŋ āĻ¸āĻš āĻĄāĻ•āĻžāĻ°-āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻĒā§‡āĻ¤ā§‡ [docker-compose.yml](https://github.com/Egnod/horton/blob/562fa5ec14df952cd74760acf76e141707d2ef58/docker-compose.yml) āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĢāĻ°ā§āĻŽā§‡āĻ°:

version: '3'

services:
  db:
    container_name: horton-mongodb-local
    image: mongo:4.2-bionic
    command: mongod --port 20017
    restart: always
    ports:
      - 20017:20017
    environment:
      - MONGO_INITDB_DATABASE=horton
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=admin_password

  kafka-service:
    container_name: horton-kafka-local
    image: obsidiandynamics/kafka
    restart: always
    ports:
      - "2181:2181"
      - "9092:9092"
    environment:
      KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092"
      KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka-service:29092,EXTERNAL://localhost:9092"
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT"
      KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"
      KAFKA_ZOOKEEPER_SESSION_TIMEOUT: "6000"
      KAFKA_RESTART_ATTEMPTS: "10"
      KAFKA_RESTART_DELAY: "5"
      ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: "0"

  kafdrop:
    container_name: horton-kafdrop-local
    image: 'obsidiandynamics/kafdrop:latest'
    restart: always
    ports:
      - '9000:9000'
    environment:
      KAFKA_BROKERCONNECT: kafka-service:29092
    depends_on:
      - kafka-service

āĻāĻ–āĻžāĻ¨ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ•āĻŋāĻ›ā§ āĻ¨ā§‡āĻ‡āĨ¤ āĻ•āĻžāĻĢāĻ•āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻā§āĻŸāĻŋ āĻļā§āĻ°ā§‹āĻ¤āĻž āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛: āĻāĻ•āĻŸāĻŋ (āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ) āĻ¯ā§ŒāĻ—āĻŋāĻ• āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ (āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ•) āĻŦāĻžāĻ‡āĻ°ā§‡ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ¤āĻžāĻ‡ āĻ¤āĻžāĻ°āĻž āĻāĻŸāĻŋāĻ•ā§‡ āĻŦāĻžāĻ‡āĻ°ā§‡ āĻĢāĻ°ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ 2181 - āĻšāĻŋāĻĄāĻŧāĻŋāĻ¯āĻŧāĻžāĻ–āĻžāĻ¨āĻžāĻ° āĻŦāĻ¨ā§āĻĻāĻ°āĨ¤ āĻŦāĻžāĻ•āĻŋ, āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ, āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°.

āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ•āĻ™ā§āĻ•āĻžāĻ˛ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻŽā§ŒāĻ˛āĻŋāĻ• āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹āĻŸāĻŋ āĻāĻ‡āĻ°āĻ•āĻŽ āĻšāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤:

horton
├── docker-compose.yml
└── horton
    ├── agents.py *
    ├── alphavantage.py *
    ├── app.py *
    ├── config.py
    ├── database
    │   ├── connect.py
    │   ├── cruds
    │   │   ├── base.py
    │   │   ├── __init__.py
    │   │   └── security.py *
    │   └── __init__.py
    ├── __init__.py
    ├── records.py *
    └── tasks.py *

*āĻ†āĻŽāĻŋ āĻ¨ā§‹āĻŸ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨āĻ“ āĻāĻŸāĻŋ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°āĻŋ āĻ¨āĻž, āĻ†āĻŽāĻ°āĻž āĻ–āĻžāĻ˛āĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋā§ˇ**

āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻāĻ–āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¯āĻžāĻ•, āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ˛āĻŋāĻ–ā§āĻ¨ āĻāĻŦāĻ‚ mongodb āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻžāĻ ā§āĻ¯ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻŦ āĻ¨āĻž, āĻ¯āĻžāĻ¤ā§‡ āĻĻā§‡āĻ°āĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ° āĻ˛āĻŋāĻ™ā§āĻ• āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻŦāĨ¤

āĻ†āĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻāĻŦāĻ‚ āĻŽā§‡āĻŸāĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ - pyproject.toml

āĻāĻ° āĻĒāĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ā§‡āĻ¨āĻ­ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ (āĻŦāĻž āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ venv āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨):

pip3 install poetry (ĐĩŅĐģи ĐĩŅ‰Ņ‘ ĐŊĐĩ ŅƒŅŅ‚Đ°ĐŊОвĐģĐĩĐŊĐž)
poetry install

āĻāĻ–āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ• config.yml - āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻŦāĻ‚ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¨āĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ alphavantage āĻœāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨. āĻ“āĻ¯āĻŧā§‡āĻ˛, āĻāĻ° āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ• config.py - āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻŦā§‡āĻ° āĻ•āĻ°ā§āĻ¨āĨ¤ āĻšā§āĻ¯āĻžāĻ, āĻ†āĻŽāĻŋ āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻ›āĻŋ, āĻ†āĻŽāĻŋ āĻ†āĻŽāĻžāĻ° āĻ˛āĻŋāĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ - sitri.

āĻŽāĻ™ā§āĻ—ā§‹āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŦā§‡āĻļ āĻ¸āĻšāĻœāĨ¤ āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻŦā§‡āĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ cruds āĻāĻ° āĻœāĻ¨ā§āĻ¯, āĻ¸āĻ‚āĻ—ā§āĻ°āĻšā§‡ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ āĻ•āĻ°āĻ¤ā§‡āĨ¤

āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ•ā§€ āĻšāĻŦā§‡?

āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ–ā§āĻŦ āĻĻā§€āĻ°ā§āĻ˜ āĻ¨āĻ¯āĻŧ, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ…āĻ¨ā§āĻĒā§āĻ°ā§‡āĻ°āĻŖāĻž āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻ›āĻŋ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻ•ā§‡ āĻĻā§‹āĻˇāĻžāĻ°ā§‹āĻĒ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž - āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĻāĻŋāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ…āĻ‚āĻļā§‡ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•ā§āĻ¸ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻāĻ‡ āĻ–ā§āĻŦ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ…āĻ‚āĻļā§‡ āĻ†āĻŽāĻ°āĻž:

  1. āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻļā§‡āĻˇ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¸āĻš aiohttp-āĻ alphavantage-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ˛āĻŋāĻ–āĻŋāĨ¤
  2. āĻ†āĻ¸ā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻāĻœā§‡āĻ¨ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ āĻ¯āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋāĻœ āĻāĻŦāĻ‚ āĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻ• āĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻŦā§‡āĨ¤

āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ•ā§‹āĻĄ

āĻāĻ‡ āĻ…āĻ‚āĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨