en
Feedback
Python Academy

Python Academy

Open in Telegram

Python Academy β€” ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π» вмСсто тысячи ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠ² Π§Π°Ρ‚ ΠΊΠ°Π½Π°Π»Π°: @python_academy_chat БотрудничСство: @zubar89 Канал Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ РКН: https://rkn.link/TVu

Show more

πŸ“ˆ Analytical overview of Telegram channel Python Academy

Channel Python Academy (@python_academy) in the Russian language segment is an active participant. Currently, the community unites 44 529 subscribers, ranking 2 929 in the Technologies & Applications category and 14 041 in the Russia region.

πŸ“Š Audience metrics and dynamics

Since its creation on Π½Π΅Π²Ρ–Π΄ΠΎΠΌΠΎ, the project has demonstrated rapid growth, gathering an audience of 44 529 subscribers.

According to the latest data from 26 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 152 over the last 30 days and by -7 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 4.81%. Within the first 24 hours after publication, content typically collects 2.33% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 2 140 views. Within the first day, a publication typically gains 1 039 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 3.
  • Thematic interests: Content is focused on key topics such as строка, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, докумСнтация, taskiq, yaml.

πŸ“ Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
β€œPython Academy β€” ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π» вмСсто тысячи ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠ² Π§Π°Ρ‚ ΠΊΠ°Π½Π°Π»Π°: @python_academy_chat БотрудничСство: @zubar89 Канал Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ РКН: https://rkn.link/TVu”

Thanks to the high frequency of updates (latest data received on 27 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

44 529
Subscribers
-724 hours
-847 days
+15230 days
Posts Archive
Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π’ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Python Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ tempfile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹
Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π’ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Python Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ tempfile, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ дирСкториями. Ѐункция TemporaryFile создаСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² систСмной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΡƒΠ΄Π°Π»Π΅Π½ ΠΏΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· контСкстного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°. Π’Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы ΠΈ прилоТСния Π½Π΅ смогут ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этому Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ. #tempfile

ВычислСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Для вычислСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ getsizeof(object[, default]) ΠΈΠ· ΠΌΠΎΠ΄Ρƒ
ВычислСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Для вычислСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ getsizeof(object[, default]) ΠΈΠ· модуля sys. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² python всС ΠΏΠΎ сути являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚ΠΎ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² памяти ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρƒ любого Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. И хотя всС built-in (встроСнныС) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Ρ€Π½ΠΎ для ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². АргумСнт default позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ, Ссли Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ прСдоставляСт срСдства для извлСчСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ TypeError . Ѐункция getsizeof Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ __sizeof__ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ добавляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ слуТСбныС Π΄Π°Π½Π½Ρ‹Π΅ сборщика мусора. #getsizeof

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ pathlib Π²Π·Π°ΠΌΠ΅Π½ os Π’ Python 3 стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ pathlib, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Path, которая
ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ pathlib Π²Π·Π°ΠΌΠ΅Π½ os Π’ Python 3 стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ pathlib, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Path, которая обСспСчиваСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с путями ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ. Одно ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΡ… прСимущСств использования pathlib - это ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с путями Π·Π° счСт использования Path вмСсто os.path.join, прСдставляя Π±ΠΎΠ»Π΅Π΅ простой ΠΈ изящный ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Ρƒ функциям для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ путями ΠΈΠ· модуля os, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ os.mkdir ΠΈΠ»ΠΈ os.path, Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹. #path #os

УпрощСнная Ρ€Π°Π±ΠΎΡ‚Π° с JSON Казалось Π±Ρ‹, ΠΊΡƒΠ΄Π° Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ интСрСсный ΠΏΠ°ΠΊΠ΅Ρ‚ JMESpath, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ
УпрощСнная Ρ€Π°Π±ΠΎΡ‚Π° с JSON Казалось Π±Ρ‹, ΠΊΡƒΠ΄Π° Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ интСрСсный ΠΏΠ°ΠΊΠ΅Ρ‚ JMESpath, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ элСмСнты ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° JSON. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅, Ρ‚Π°ΠΌ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. ΠœΠ΅Ρ‚ΠΎΠ΄ search ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ трСбуСтся ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° JSON). Π’ΠΎΠΎΠ±Ρ‰Π΅ возмоТностСй Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π° достаточно, поэтому ΠΎΠ½ достоСн изучСния ΠΈ примСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. #json #jmespath

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ асинхронных Π·Π°Π΄Π°Ρ‡ с Taskiq Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Taskiq ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с асинхронными Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π² Python, ΠΏ
Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ асинхронных Π·Π°Π΄Π°Ρ‡ с Taskiq Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Taskiq ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с асинхронными Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π² Python, позволяя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π·Π°Π΄Π°Ρ‡. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для случаСв, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½Π΅ блокируя основной ΠΏΠΎΡ‚ΠΎΠΊ прилоТСния. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Taskiq прост ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн, Ρ‡Ρ‚ΠΎ дСмонстрируСтся Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Taskiq, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ асинхронно ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ email Π±Π΅Π· блокирования основного ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния вашСго прилоТСния. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ email с использованиСм Taskiq. Установка Taskiq производится Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² pip. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ возмоТностях ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. #python #taskiq

Π Π°Π±ΠΎΡ‚Π° с YAML-Π€Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python с ΠŸΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PyYAML PyYAML позволяСт эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ YAML (YAML Ain't Markup Language), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, настроСк ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² структурированной Ρ„ΠΎΡ€ΠΌΠ΅.
import yaml

data_to_write = {'name': 'John Doe', 'age': 30, 'city': 'Example City'}
with open('example.yaml', 'w') as file:
    yaml.dump(data_to_write, file, default_flow_style=False)

with open('example.yaml', 'r') as file:
    loaded_data = yaml.safe_load(file)
    print(f"Π—Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: {loaded_data}")
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (Ρ„Π°ΠΉΠ» example.yaml):
age: 30
city: Example City
name: John Doe
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ PyYAML для записи словаря data_to_write Π² Ρ„Π°ΠΉΠ» example.yaml ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· этого Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ loaded_data. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° PyYAML прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ YAML Π² Python. Π‘ΡƒΠ΄ΡŒ Ρ‚ΠΎ сохранСниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, ΠΎΠ±ΠΌΠ΅Π½ структурированными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сцСнарии, Π³Π΄Π΅ YAML ΠΈΠΌΠ΅Π΅Ρ‚ прСимущСство, PyYAML обСспСчиваСт Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ Π² использовании ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ код🐍 #python #yaml #pyyaml

Π”Π΅Π»Π°Π΅ΠΌ простой интСрфСйс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ tkinter tkinter - это стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΈ
Π”Π΅Π»Π°Π΅ΠΌ простой интСрфСйс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ tkinter tkinter - это стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (GUI) Π² Python. Она прСдоставляСт простой ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ создания ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ, тСкстовыС поля, списки ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π₯отя tkinter ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ GUI для Python, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ PyQt ΠΈΠ»ΠΈ wxPython, ΠΎΠ½Π° остаСтся популярным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ для создания простых ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π² использовании GUI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. #python #tkinter

Selenium: Автоматизация Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² Python selenium - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, прСдназначСнная для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² язы
Selenium: Автоматизация Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² Python selenium - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, прСдназначСнная для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² языкС программирования Python. Она прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈ эффСктивныС срСдства для взаимодСйствия с Π²Π΅Π±-страницами, заполнСния Ρ„ΠΎΡ€ΠΌ, наТатия ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²Π΅Π±-процСссов. Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… прСимущСств selenium являСтся Π΅Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для создания скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ тСстированиС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сбор Π΄Π°Π½Π½Ρ‹Ρ… с Π²Π΅Π±-сайтов ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠΌ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях. Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с selenium, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pip install selenium. ПослС установки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π²Π΅Π±-сайтами, имитируя дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. selenium прСдоставляСт мноТСство ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Π±-элСмСнтами, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… инструмСнтов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-процСссов. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ selenium, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ сэкономит Π²Π°ΠΌ врСмя ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ возмоТности для тСстирования ΠΈ сбора Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вСсьма ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сфСрах, начиная ΠΎΡ‚ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ заканчивая ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠΌ.

Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с USB PyUSB β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая обСспСчиваСт Π»Π΅Π³ΠΊΠΈΠΉ доступ ΠΊ USB. Π˜ΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠ·ΠΎΡ…Ρ€ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Ссли Π΅Ρ‘
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с USB PyUSB β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая обСспСчиваСт Π»Π΅Π³ΠΊΠΈΠΉ доступ ΠΊ USB. Π˜ΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠ·ΠΎΡ…Ρ€ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Ссли Π΅Ρ‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ бэкСнд. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с USB, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ find(), show_devices() ΠΈ Ρ‚. Π΄, хранятся Π² usb.core. ΠŸΠ°ΠΊΠ΅Ρ‚ usb.util содСрТит Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Ѐункция find() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска устройств, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ систСмС. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ рСализация внСшнСго ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ интСрфСйса, для изоляции API ΠΎΡ‚ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы. Π‘Π²ΡΠ·ΡƒΡŽΡ‰ΠΈΠΌ Π·Π²Π΅Π½ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя слоями являСтся интСрфСйс IBackend. PyUSB поставляСтся со встроСнными бэкэндами для libusb 1.0, libusb 0.1 ΠΈ OpenUSB. #python #PyUSB

ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ количСства слов Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅ На этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² Python ΠΌΡ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ тСкстовый Ρ„Π°ΠΉΠ» ΠΈ посчитаСм количСство слов Π²
ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ количСства слов Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅ На этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² Python ΠΌΡ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ тСкстовый Ρ„Π°ΠΉΠ» ΠΈ посчитаСм количСство слов Π² Π½Π΅ΠΌ.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ docker-py docker-py – это ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python для Docker, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ API для взаимодСйствия с Docker Daemon. Π‘ Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы создания, запуска, остановки ΠΈ удалСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ, сСтями ΠΈ Ρ‚ΠΎΠΌΠ°ΠΌΠΈ Docker.
import docker

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
client = docker.from_env()

# Запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
container = client.containers.run("ubuntu:latest", "echo Hello, docker-py!", detach=True)

# ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
print(container.logs().decode())

# ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
container.stop()
container.remove()
Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Docker, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ запускаСм ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π° ubuntu:latest, выполняСм Π² Π½Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ echo, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π»ΠΎΠ³ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ останавливаСм ΠΈ удаляСм ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ docker-py:
# ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка всСх ΠΎΠ±Ρ€Π°Π·ΠΎΠ²
images = client.images.list()

# Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅
for image in images:
    print(f'ID: {image.id}, Π’Π΅Π³ΠΈ: {image.tags}')
 
Для дальнСйшСго изучСния ΠΈ ознакомлСния с Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ возмоТностями рСкомСндуСтся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. #python #docker #dockerpy

Российский ИИ-стСк стал опСнсорсом β€” вСсь сразу Π‘Π±Π΅Ρ€ Π²Ρ‹Π»ΠΎΠΆΠΈΠ» ΠΏΠΎΠ΄ MIT сразу нСсколько ИИ-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ Π² собствСнном ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π΅: Π΄Π²Π΅ MoE-LLM GigaChat Ultra-Preview ΠΈ Lightning, ASR-модСль GigaAM-v3, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ стСк Kandinsky 5.0 (Video Pro / Video Lite / Image Lite) ΠΈ K-VAE 1.0 для сТатия Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. По сути, это Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ open-source Π½Π°Π±ΠΎΡ€ для русскоязычных ML-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ²: β€’ Ultra / Lightning β€” для LLM-Π·Π°Π΄Π°Ρ‡, RAG, Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΊΠΎΠ΄Π° (Lightning ΠΏΡ€ΠΈ этом Π½Π΅ просСдаСт ΠΏΠΎ качСству ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ опСнсорса Π² своём классС ΠΈ Π΄Π°Ρ‘Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстрый инфСрСнс, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°). β€’ GigaAM-v3 β€” для распознавания русской Ρ€Π΅Ρ‡ΠΈ с ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. β€’ Kandinsky 5.0 + K-VAE 1.0 β€” для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ обучСния Π²ΠΈΠ΄Π΅ΠΎ/ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС с русскими ΠΏΡ€ΠΎΠΌΠΏΡ‚Π°ΠΌΠΈ ΠΈ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ. МодСли ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ локально, Π·Π°Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π² свои REST/gRPC-сСрвисы ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊ Python-стСку β€” ΠΎΡ‚ классичСских FastAPI-бэкСндов Π΄ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ‚ΡƒΠ»ΠΎΠ² для RAG ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. #python #ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠ΅ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ путями Π’ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π΅ΡΡ‚ΡŒ максимально ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ pathlib для простой Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡƒ
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ путями Π’ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π΅ΡΡ‚ΡŒ максимально ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ pathlib для простой Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ путями. Для прСдставлСния ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π΅ΡΡ‚ΡŒ класс Path, с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ exists() ΠΈ is_dir() ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ» ΠΈ являСтся Π»ΠΈ ΠΎΠ½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ. Но самой классной Ρ„ΠΈΡ‡Π΅ΠΉ являСтся Π·Π°ΠΌΠ΅Π½Π° os.path.join() Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ элСгантный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с использованиСм слэшСй, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. Π˜Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ°ΠΊΠ΅Ρ‚ pathlib ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ частичной Π·Π°ΠΌΠ΅Π½ΠΎΠΉ os Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ путями. #pathlib

🌐 ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Π±-содСрТимого Π² Python с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ pywebcopy Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° pywebcopy ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ процСсса Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π΅Π±-содСрТимого, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ создании Π²Π΅Π±-скрапСров, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… копирования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

from pywebcopy import save_webpage

url = 'https://www.example.com'

target_folder = 'path/to/folder'

save_webpage(url, target_folder)
Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция save_webpage для копирования Π²Π΅Π±-содСрТимого ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Π±-страницы (url) Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ (target_folder). Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° pywebcopy прСдоставляСт простой ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ копирования Π²Π΅Π±-содСрТимого прямо ΠΈΠ· Python. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ создании скриптов для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с Π²Π΅Π±-страниц, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ создании Π·Π΅Ρ€ΠΊΠ°Π» сайтов. πŸ’» #python #pywebcopy

Π Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π’ contextlib Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΉ контСкстный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ β€” redirect_stdout, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°
Π Π΅Π΄ΠΈΡ€Π΅ΠΊΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π’ contextlib Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΉ контСкстный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ β€” redirect_stdout, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ стандартный Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΡƒΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ вСсь Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· print() Π² контСкстом ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅ Ρ„Π°ΠΉΠ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ redirect_stdout. УбСдится Π² этом ΠΌΠΎΠΆΠ΅ΠΌ, ΠΎΡ‚ΠΊΡ€Ρ‹Π² Ρ„Π°ΠΉΠ» Π·Π°Π½ΠΎΠ²ΠΎ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅. #contextlib

Блайсы Блайс (ΠΈΠ»ΠΈ срСз, Π°Π½Π³Π». slice) β€” это способ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строки, списка, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°) ΠΏΡƒΡ‚Π΅ΠΌ
Блайсы Блайс (ΠΈΠ»ΠΈ срСз, Π°Π½Π³Π». slice) β€” это способ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строки, списка, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°) ΠΏΡƒΡ‚Π΅ΠΌ указания Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ индСксов, Π° Ρ‚Π°ΠΊΠΆΠ΅ шага. Блайсы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для извлСчСния подстрок, подсписков ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈΠ· исходной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Блайсы ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ извлСчСния Π½ΡƒΠΆΠ½Ρ‹Ρ… элСмСнтов ΠΈΠ· Π½ΠΈΡ…. #python #slice

Π Π°Π±ΠΎΡ‚Π° с ip адрСсами Если Π²Π°ΠΌ приходится ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Python ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ΡŒΡŽ β€” это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ³
Π Π°Π±ΠΎΡ‚Π° с ip адрСсами Если Π²Π°ΠΌ приходится ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Python ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ΡŒΡŽ β€” это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ipaddress. Одним ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΅Π³ΠΎ использования являСтся гСнСрация списка IP-адрСсов ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° адрСсов, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ CIDR (Classless Inter-Domain Routing, ΠΈΠ»ΠΈ бСсклассовая адрСсация). ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρƒ модуля ipaddress Π΅ΡΡ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… интСрСсных возмоТностСй, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡŒ. #ipaddress

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ контСкстный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» управлСния контСкстом Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса ΠΈ Π΄Π²ΡƒΡ…
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ контСкстный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» управлСния контСкстом Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса ΠΈ Π΄Π²ΡƒΡ… магичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: __enter__ ΠΈ __exit__. Но Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слСгка слоТным. Π’Π°ΠΊ Π²ΠΎΡ‚, ΠΏΠΎΠΌΠΈΠΌΠΎ написания своСго класса, Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ контСкстный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ @contextmanager ΠΈΠ· встроСнного ΠΏΠ°ΠΊΠ΅Ρ‚Π° contextlib. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ tag, ΠΊΠΎΡ‚орая ΠΈΠ΄Ρ‘Ρ‚ Π΄ΠΎ yield, выполняСтся ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ with. Π—Π°Ρ‚Π΅ΠΌ исполняСтся сам этот Π±Π»ΠΎΠΊ, Π° послС этого Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ Ρ‡Π°ΡΡ‚ΡŒ, которая ΠΈΠ΄Π΅Ρ‚ послС yield.  #contextlib

РаспознаСм Ρ€Π΅Ρ‡ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SpeechRecognition SpeechRecognition β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Python, которая прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ
РаспознаСм Ρ€Π΅Ρ‡ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SpeechRecognition SpeechRecognition β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Python, которая прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ API для распознавания Ρ€Π΅Ρ‡ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Google, Microsoft, IBM ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΎΡ„Π»Π°ΠΉΠ½-Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ голосовых ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°ΡƒΠ΄ΠΈΠΎΠ΄Π°Π½Π½Ρ‹Ρ… Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Благодаря ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ спСктру возмоТностСй, SpeechRecognition ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с голосовым ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ассистСнтов ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. #python #speechrecognition

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти Π² Python ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Memory
ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти Π² Python ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Memory Profiler ΠΈ objgraph. Π­Ρ‚ΠΈ инструмСнты ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ссылки ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти. Memory Profiler позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΈ памяти Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΊΠΎΠ΄Π° вашСго скрипта. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этим инструмСнтом, запуститС Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
python -m memory_profiler my_script.py
objgraph ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ссылки ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ создаст ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ my_list.png, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ссылаСтся my_list, ΠΈ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° Π½ΠΈΡ…. Оба инструмСнта просты Π² использовании ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠΎΡ‰Π½Ρ‹Π΅ срСдства для выявлСния ΠΈ устранСния ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. #python #memoryprofiler #objgraph