по всем вопросам @haarrp @itchannels_telegram - 🔥 best it channels @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books
Уверены в своих навыках кодинга?
Тогда заглядывайте в канал Selectel. Всю неделю в канале будут выходить полезные материалы для разработчиков:
● Подробная инструкция, как сделать приложение на базе веб-технологий;
● Технические задачи для настоящих Python-энтузиастов;
● Идеи для pet-проектов: от генерации сложных паролей до нейросети для создания изображений;
● И даже выгодные продуктовые предложения, которые помогут воплотить идеи на инфраструктуре Selectel.
Подписывайтесь на канал и прокачивайте знания в сфере разработки ➡️
Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqwdjwRx
🖥 Вышел Git 2.50
Вот основные обновления:
1. Новый уровень работы с cruft packs
- Git хранит неиспользуемые (невидимые) объекты в специальных “cruft packs”.
- Раньше управлять ими было сложно: чтобы добавить или объединить объекты, нужно было всё перепаковывать, что занимало много времени и места.
- Теперь появился флаг --combine-cruft-below-size
: можно легко объединять мелкие cruft packs в один, постепенно “чистить” репозиторий.
- Исправлена важная ошибка: раньше такие объекты могли случайно удаляться раньше времени — теперь это под контролем.
2. Быстрее для больших репозиториев — многослойные битмапы
- В больших проектах Git создаёт специальные “карты” (bitmaps), чтобы быстро понимать, какие объекты нужны для определённых коммитов.
- Новая версия поддерживает “инкрементальные” битмапы для multi-pack index — можно добавлять новые данные быстро, не пересоздавая всю структуру.
3. Новый движок слияния ORT
- Старый движок recursive
полностью удалён: теперь слияния (`merge`) обрабатывает только быстрый и надёжный ORT.
- Это упростит разработку, повысит скорость merge и уменьшит количество ошибок.
4. Улучшения в утилитах и команде cat-file
- Теперь можно фильтровать объекты по типу, например, быстро получить только “деревья” (tree) с помощью --filter='object:type=tree'
.
- Команда для удаления reflog стала интуитивной: вместо сложных параметров просто пишем git reflog delete <branch>
.
5. Больше контроля над сетевыми соединениями
- Добавлены настройки для TCP Keepalive, теперь можно гибко управлять поведением Git в нестабильных сетях.
6. Меньше Perl — проще тестировать и собирать
- Git ещё больше избавился от зависимостей на Perl: тесты и документация теперь проще и стабильнее, особенно на системах без Perl.
7. Работа с разреженными (sparse) репозиториями стала удобнее
- Команды вроде git add -p
теперь не требуют полной загрузки содержимого — удобно при работе с огромными проектами.
8. Косметические улучшения
- При ребейзе (rebase -i) названия коммитов теперь оформляются как комментарии — так ясно, что это просто для ориентира.
9. Быстрее клонируем через bundle-uri
- Git стал лучше справляться с ускоренным клонированием через *.bundle: теперь клиент правильно учитывает все ссылки, ускоряя загрузку репозитория.
Git 2.50 — это не просто исправление багов, а реальное ускорение и упрощение работы для всех, кто ведёт большие проекты, часто сливает ветки и заботится о “чистоте” репозитория. Новые команды делают жизнь проще, а старые баги — ушли в прошлое.
➡️ Почитать про все обновления
@pythonl
🚀 Pipedream — платформа для создания интеграций и автоматизаций между сервисами. Этот инструмент позволяет соединять более 1000 приложений через готовые компоненты или собственный код на Node.js, Python, Go и Bash.
Главное преимущество проекта — это гибкость: можно быстро настроить триггеры и цепочки действий без сложной инфраструктуры. Для кастомных сценариев доступно выполнение произвольного кода с подключением любых npm/pip-пакетов. Интеграции развертываются в облаке Pipedream, что избавляет от необходимости настраивать серверы.
🤖 GitHub
@pythonl
⚡️ MicroVMS — новая платформа для запуска кода от AI-агентов с максимальной безопасностью и скоростью.
В отличие от Docker и других тяжелых решений, MicroVMS использует легковесные песочницы для быстрой изоляции, мгновенного старта и простого управления.
● Поддержка разных сред: Python, Node.js и другие
● Идеально для AI-агентов — разработка и запуск без лишних сложностей
● Удобная система управления проектами — настройка песочниц в пару кликов
Если вы хотите запускать код AI-агентов быстро, безопасно и удобно — обратите внимание на MicroVMS.pip install microsandbox
🔗 Github
@pythonl
🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/python_job_interview
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
🧠 16 июня все самое важное в мире технологий ищите в Санкт-Петербурге!
В ТехноХабе Сбера состоится большая сессия в рамках серии мероприятий международной конференции AI Journey.
Именно здесь соберутся лидеры AI-индустрии из разных стран, чтобы обсудить реальные кейсы внедрения AI, архитектуры нового поколения, крутой апгрейд нейронки GigaChat, самое свежее в исследованиях GenAI и то, что уже завтра станет новым стандартом!
📌 Подключайтесь к трансляции, чтобы не отставать от будущего.
QA-митап от YADRO — уже 19 июня
📍 Санкт-Петербург и онлайн
🕕 Сбор гостей с 18:00
🎫 Участие бесплатное
Мероприятие будет полезно специалистам в области автоматизированного тестирования, особенно тем, кто работает с Python и внедряет собственные инструменты и процессы в тестовую инфраструктуру.
В программе:
— Обзор TestY — системы управления тестированием (TMS) с открытым исходным кодом и плагинной архитектурой.
— Подход к автоматизации тестирования оборудования: от простого Bash до интеграции с тестовыми планами.
— Анализ метрик качества, которые оказывают влияние на принятие решений в IT-продуктах и проектах.
Спикеры — эксперты YADRO и приглашенные гости из Сбера, Т-банка и других компаний с опытом построения QA-процессов в крупных IT-командах.
Офлайн-участников ждут демозона с оборудованием YADRO, интерактивные стенды, технический квест, кофе-брейк и неформальное общение на афтепати.
👉 Регистрация уже открыта, участие бесплатное. До встречи!
💎 Quadratic — электронные таблицы нового поколения с кодом и ИИ. Проект предоставляет гибридную среду, где формулы, Python и SQL работают бок о бок, позволяя анализировать миллионы строк прямо в браузере без потерь производительности.
Особенность инструмента — технологичный стек (Rust, WebAssembly, WebGL). Интерфейс с поддержкой 60 FPS и масштабированием как в Figma делает работу с большими данными неожиданно плавной.
🤖 GitHub
@pythonl
🖥 Полезный хак для Python разработчиков.
import dis
def explain_bytecode(fn):
print(f"Анализ байткода функции: {fn.__name__}\n")
dis.dis(fn)
Пример:
def tricky(x):
return x * 2 + 1 if x > 0 else x - 1
explain_bytecode(tricky)
📚 Эффективное сжатие текста: код Хаффмана в действии
Приглашаем на открытый урок.
🗓 11 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Алгоритмы и структуры данных».
На этом вебинаре мы продолжим разработку архиватора, реализовав код Хаффмана.
✔️ Рассмотрим, как построить дерево кодов, где частота появления символов определяет их битовое представление.
✔️ Интегрируем алгоритм в наш архиватор и проведем сравнительное тестирование с RLE.
✔️ Увидим, как эффективно работает код Хаффмана на текстовых файлах и других типах данных.
Отличная возможность изучить продвинутые древовидные структуры данных на практическом примере.
Развивайте алгоритмическое мышление, увеличивайте производительность программ.
🎁 Всем участникам вебинара дарим промокод, который дает скидку на обучение - Algo5
👉 Регистрация на вебинар: https://otus.pw/4BpC/
#реклама
О рекламодателе
🚨 Атака на PyPI, npm и RubyGems: сотни вредоносных пакетов в официальных реестрах
🔍 Исследователи обнаружили массовую кампанию по размещению вредоносных библиотек в популярных экосистемах:
🧪 Что произошло:
• На npm опубликованы фейковые версии библиотек вроде Hardhat, крадущие приватные ключи и .env
• В PyPI появились клоны requests
, urllib3
и др., с вредоносными вставками
• В RubyGems — более 700 пакетов, использующих тайпосквоттинг (`activesupportt`, httpartyy
и т.д.)
🎯 Цель — разработчики. Пакеты собирают:
– мнемоники
– приватные ключи
– конфиги AWS/GCP
– системную информацию
🛡 Что делать:
– Проверяй названия пакетов (тайпосквоттинг — главный приём)
– Запускай pip audit
, npm audit
, bundler audit
– Используй виртуальные окружения и минимум прав
– Подпиши зависимости, где это возможно (например, через Sigstore)
📌 Подробнее
🤖 ReasonFlux-Coder — ИИ, который пишет код и сразу проверяет его
Новая серия моделей от команды ReasonFlux научилась не только писать код, но и автоматически генерировать юнит-тесты.
Это стало возможно благодаря их алгоритму CURE — модель учится программировать и проверять себя одновременно.
💡 Что внутри:
🧠 ReasonFlux-Coder-7B и 14B
Пишут код лучше, чем другие модели такого же размера: Qwen Coders, DeepSeek, Seed-Coders.
Без проблем работают в пайплайнах с агентами и умеют масштабироваться на этапе запуска.
🧪 ReasonFlux-Coder-4B (Long-CoT)
Модель с расширенным рассуждением (Chain-of-Thought).
• Обходит Qwen3-4B
• Создаёт юнит-тесты с эффективностью 64.8%
• Может использоваться как reward-модель в обучении с подкреплением
📌 Зачем это нужно:
– для автотестирования кода
– для CICD пайплайнов
– для агентных систем, которые сами проверяют свои решения
📄 Подробности: https://huggingface.co/Gen-Verse/ReasonFlux-Coder-14B
@pythonl
🖥 Physics Simulations
Набор симуляций физических явлений, написанных на Python с использованием Pygame. Эти симуляции создавались в образовательных целях и охватывают различные концепции, включая:
- Законы Ньютона
- Гравитацию
- Силы и трение
- Простую гармоническую модуляцию
- И многое другое
Для запуска симуляций необходимо установить зависимости:
pip install -r requirements.txt
python gravity_sim.py
🕵️♂️ ExeRay — статический анализатор PE-файлов на Python
ExeRay — это удобный инструмент для реверс-инженеров, исследователей безопасности и malware-аналитиков.
Он проводит статический анализ исполняемых файлов .exe
(PE-файлов) и визуализирует их структуру в удобной форме.
🧩 Что умеет ExeRay:
✅ Анализировать PE-файл и извлекать:
- Заголовки, секции, импорты/экспорты
- Таблицы ресурсов
- Используемые API и библиотеки
- Suspicious patterns и аномалии
✅ Генерировать отчёт в HTML
✅ Работает полностью офлайн
✅ Поддержка анализа несколькими методами (pefile + custom парсеры)
📦 Пример использования:
python main.py -f malware.exe
pefile
, matplotlib
, pyvis
для графов зависимостей .exe
, и хочешь быстро понять, что внутри — ExeRay сэкономит часы ручного анализа.🎯 5 ИИ-проектов, которые ты можешь собрать за выходные
Хочешь прокачать навыки ML и Python без математики и Kaggle? Лови 5 готовых идей, которые можно собрать за 1–2 дня:
🔹 Голосовой ассистент — Whisper + GPT + озвучка
🔹 Чат-бот для PDF — LangChain + FAISS + OpenAI
🔹 Генератор картинок — Stable Diffusion + Gradio
🔹 Подписи к фото — BLIP + HuggingFace
🔹 TL;DR бот — BART или GPT для суммаризации текста
✅ Примеры кода
✅ Деплой на HuggingFace / Streamlit
✅ Всё реально собрать за выходные
📎 Забирай гайд — и добавь проекты в резюме: «AI developer: checked»
@pythonl
💻 Copilot Agent Mode — новый этап в развитии AI-помощников для разработчиков
Теперь доступен всем в июньском обновлении Visual Studio!
🧠 Что умеет:
• Сам строит план разработки
• Выполняет задачи пошагово
• Адаптируется по ходу процесса
• Циклично доводит работу до завершения
Это уже не просто автодополнение — это полноценный агент, способный решать проектные задачи от начала до конца.
📖 Подробнее: https://msft.it/6018SQDuo
#VisualStudio #Copilot #AIdev #AItools #GitHubCopilot
#Copilot
@pythonl
🚀 TurboDRF — ускоритель Django REST Framework без боли
TurboDRF — лёгкий способ ускорить ваш Django API без перехода на FastAPI или переписывания логики.
🔥 Что даёт TurboDRF:
• ⚡ Быстрый рендер сериализаторов
• 🧠 Автоматический prefetch_related
и select_related
• 🧊 Кэширование сериализованных ответов
• 🧩 Совместим с обычными DRF-сериализаторами
📦 Установка:pip install turbodrf
🛠️ Пример:
from turbodrf.mixins import TurboModelSerializer
class MySerializer(TurboModelSerializer):
class Meta:
model = MyModel
fields = "__all__"
🖥 py-pglite — PostgreSQL без установки, тестируй как с SQLite!
py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай.
📌 Почему это круто:
- 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python
- ⚡ Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2}
- 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно
- 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями
- 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3}
💡 Примеры установки:
pip install py-pglite
pip install py-pglite[sqlalchemy] # SQLAlchemy/SQLModel
pip install py-pglite[django] # Django + pytest-django
pip install py-pglite[asyncpg] # Асинхронный клиент
pip install py-pglite[all] # Всё сразу
python
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice")
pglite_session.add(user)
pglite_session.commit()
assert user.id is not None
🖥 Two Claps Open — инструмент, который открывает Chrome или активирует голосового помощника, когда пользователь хлопает в ладоши два раза 👏
💬 Как это работает:
• Слушает микрофон через pyaudio
• Реагирует на два быстрых хлопка подряд
• Открывает браузер или помощника
Возможности зависят только от фантазии:
• Включай музыку или YouTube по хлопку
• Открывай рабочий дашборд при запуске ПК
• Управляй умным домом — включай свет или открывай дверь хлопком
Чтобы понять, как "выглядит" хлопок в аудиосигнале, разработчик записал его и провёл преобразование Фурье. Оказалось, что основная энергия хлопка сосредоточена в диапазоне 1.4–1.8 кГц. Дальше был настроен полосовой фильтр, чтобы выделять только этот диапазон и отсекать шум.
После фильтрации система отслеживает пики в сигнале. Если зафиксировано три хлопка подряд с минимальным интервалом, автоматически запускается Chrome (или любая команда на ваш выбор).
Реализуется в реальном времени — просто и удобно для управления без рук!
▪ Github
@pythonl
🎥 Self Forcing: генерация видео в реальном времени с RTX 4090
Новая техника Self Forcing позволяет обучать видеодиффузионные модели "думать как на инференсе" ещё во время обучения.
🧠 Что делает:
▪️ Имитирует autoregressive-инференс с KV-кэшированием прямо во время обучения
▪️ Устраняет расхождение train/test distributions
▪️ Достигает качества SOTA-моделей, но с реальным временем генерации
▪️ Работает даже на одной RTX 4090
⚙️ Требования:
• GPU с 24 GB+ памяти (4090 / A100 / H100 протестированы)
• Linux
• 64 GB RAM
• Другие конфигурации могут работать, но не проверялись
📌 Выход: стриминговое видео — кадр за кадром, без задержек, на одном потребительском GPU.
💡 Self Forcing — шаг к видеогенерации без лага и мегакластеров.
📦 Основан нп Wan 2.1
💻 Требования: минимум 24 ГБ VRAM и 64 ГБ RAM
🧪 Код открыт, всё работает (пока) только под Linux
Github
@pythonl
🎮 Mopad — геймпад в Marimo-ноутбуках
Mopad — это anywidget для Marimo, который позволяет получать данные от геймпада в реальном времени. Идеально подходит для:
• интерактивного анализа данных
• создания мини-игр
• любых приложений, где важен живой отклик от контроллера
🔹 Возможности:
- 🔍 Автоматическое определение геймпада — не нужно жать кнопку для подключения
- 📈 Реакция в реальном времени — видите статус подключения и нажатия
- 🕒 Точное время — миллисекундная точность событий
- 🕹️ Поддержка любых кнопок — работает с любым Bluetooth-геймпадом
🧪 Вы получаете dict
, который автоматически обновляется при каждом действии на геймпаде. Можно использовать это для управления визуализациями, запусков функций или даже игр прямо в ноутбуке.
🔗 Репозиторий
@pythonl
🖥 PUBG Cheat: мощный и скрытый инструментарий для исследований на Python
🔍 Что такое PUBG Cheat?
Это образовательный инстурментов для анализа работы PUBG с набором читов, включающий Aimbot, ESP, Wallhack, Radar, No Recoil и HWID Spoofer.
Работает на Windows 10/11, поддерживает Streamer Mode и идеально подходит для изучения внутренней механики игры. Предназначен для исследований безопасности, а не для нарушения правил игры.
🎯 Особенности Aimbot
Aimbot обеспечивает высокую точность и гибкость:
- Вкл/Выкл: Активация одной кнопкой.
- Сохранение цели: Удержание прицела на противнике.
- Aimlock: Постоянное отслеживание врагов.
- Предугадывание: Корректировка на движение и полет пули.
- Игнор нокаутов: Пропуск уже поверженных.
- Контроль отдачи: Стабилизация при стрельбе.
- Сглаживание: Естественные движения прицела.
- Визуализация: Отображение зоны FOV, прицела и целей.
⚠️ Важно
Этот инструментарий создан для образовательных целей и исследований безопасности. Использование читов в PUBG нарушает правила игры и может привести к бану. Будьте ответственны!
🔗 Подробности: Исходный код и описание доступны на GitHub: https://github.com/pubg-undetected/pubg-cheat
#PUBG #AppSec #SecurityResearch
@pythonl
🤖 AI, который сам пишет код — умный агент на базе LangGraph
Проект находится в активной разработке и уже умеет автоматизировать весь цикл: от планирования проекта до генерации кода. Всё построено на надёжных multi-agent workflow'ах с использованием LangGraph.
🚀 Что делает агент:
🧠 Понимает задачу и строит план
AI-архитектор анализирует требования и создаёт пошаговый план разработки.
💻 Генерирует и редактирует код
Dev-агент аккуратно применяет изменения в кодовой базе, редактируя конкретные файлы.
🔁 Разделяет роли — надёжнее работает
Отдельные агенты для планирования и реализации — меньше ошибок и больше контроля.
🧬 Понимает структуру проекта
Использует tree-sitter и семантический поиск, чтобы ориентироваться в коде как человек.
📦 Работает по шагам
Разбивает задачи на мелкие изменения — удобно для review и безопасно для CI.
💡 Если интересуешься автоматизацией разработки, AI-помощниками и мультиагентными системами — стоит попробовать уже сейчас.
▪ Github
@pythonl
#AI #AutoCoding #LangGraph #DevTools #MultiAgent #CodeAutomation
🎮 Учимся Python прямо в бою — в Steam бесплатно раздают CodeStrike!
Это не просто игра — это шпионский экшен, где ты решаешь всё кодом.
В CodeStrike ты — элитный агент, действующий в мире, захваченном ИИ и алчными корпорациями.
💻 Что тебя ждёт:
• Пишешь Python-код
• Ломаешь системы, обходишь ловушки, взрываешь и взламываешь
• Программируешь поведение героя в реальном времени
• Участвуешь в гонках, сражениях и выживании — только с помощью кода
Это как если бы *Metal Gear* встретился с *LeetCode* — но весело.
🐍 Прокачай Python, даже не замечая, как учишься.
⚡ Вкатиться можно здесь: https://store.steampowered.com/app/3444170/CodeStrike__Python_Practice_Adventure_Game/
@pythonl
🖥 Задача: Что делает эта загадочная функция paradox и почему она называется так?
def paradox(n):
def f(x):
return ((x * x) % n + x) % n
slow = fast = 0
while True:
slow = f(slow)
fast = f(f(fast))
if slow == fast:
return slow
print(paradox(31337))
Давно хотели освоить программирование, но вас останавливала нехватка времени или строгие дедлайны? Тогда советуем обратить внимание на бесплатные курсы Яндекс Лицея по Python, Go и C++ для начинающих.
Заниматься на них можно когда и где угодно, ведь уроки доступны онлайн и в них нет дедлайнов! Вас ждут:
✅ Качество: занятия разработаны практикующими экспертами Яндекса.
✅ Свобода: пользуйтесь автоматической проверкой решений и задавайте вопросы через поддержку.
✅ Перспективы: после завершения вы получите уверенную базу для дальнейшего роста, а также сертификат, который пригодится при поступлении в Яндекс Лицей.
Не откладывайте на потом — выберите курс и зарегистрируйтесь на сайте!
Это реклама открытой технологической конференции от Сбера GigaConf 2025.
На ней технари рассказывают сложные вещи о прикладном применение генеративного искусственного интеллекта.
Контент конференции будет сложно понять простому обывателю, а разработчиков и членов инженерных команд мы приглашаем пройти регистрацию на сайте.
GigaConf 2025 // Москва, 25 июня
https://gigaconf.ru/
Реально ли совмещать учёбу с работой и жизнью?
Совместный онлайн-бакалавриат НИУ ВШЭ и Нетологии как раз даёт такую возможность.
Обучение проходит полностью дистанционно, но в очной форме, а значит сохраняется отсрочка от армии, льготы на проезд, доступ к библиотеке и возможность взять образовательный кредит с господдержкой.
На первых курсах вы изучите базовые математические и гуманитарные предметы,
основы программирования и профильные дисциплины по фулстек-разработке.
А с третьего курса выберете углублённый трек: руководитель командой разработки или DevOps-инженер.
По итогу обучения освоите 4 языка программирования: Java, Python, JavaScript, Go.
Практики будет много — участие в хакатонах, командные проекты и возможность попасть на стажировку в Сбер по ускоренному треку.
Получите диплом, который поможет строить карьеру в сильных IT-командах.
Учитесь без отрыва от жизни: https://netolo.gy/ebKb
Реклама. ООО "Нетология". ИНН 7726464125 Erid: 2VSb5wZ53dr
🐍 Ошибка с изменяемыми значениями по умолчанию»**
🎯 Цель: Найти и объяснить баг, который не вызывает исключений, но ломает логику приложения
📍 Ситуация:
У тебя есть функция, которая логирует события с метаданными. По умолчанию метаданные можно не передавать:
def log_event(event, metadata={}):
metadata["event"] = event
print(metadata)
log_event("start")
log_event("stop")
log_event("error", {"code": 500})
log_event("retry")
{'event': 'start'}
{'event': 'stop'}
{'code': 500, 'event': 'error'}
{'code': 500, 'event': 'retry'}
code: 500
появляется там, где его быть не должно?metadata={}
создаётся один раз и сохраняется между вызовами, если параметр не передан.def f(d={}):
print(id(d))
d["x"] = 1
print(d)
f()
f()
id(d)
— значит, используется тот же объект.def log_event(event, metadata=None):
if metadata is None:
metadata = {}
metadata["event"] = event
print(metadata)
code: 500
не "протекает" в следующие вызовы.items=[]
visited=set()
None
+ инициализацию внутри функции для изменяемых типов.🐍 Python-библиотеки для Linux-администраторов
Набор must-have инструментов, которые помогут автоматизировать системные задачи, управлять файлами, процессами и сетью:
🔸 os
— работа с файловой системой, путями, переменными окружения
https://docs.python.org/3/library/os.html
🔸 subprocess
— запуск внешних команд и управление ими
https://docs.python.org/3/library/subprocess.html
🔸 psutil
— мониторинг процессов, ресурсов, дисков, сети
https://pypi.org/project/psutil/
🔸 platform
— информация об ОС, архитектуре, версии Python
https://docs.python.org/3/library/platform.html
🔸 socket
— сетевые соединения и сокеты
https://docs.python.org/3/library/socket.html
🔸 pwd
— доступ к информации о пользователях Unix
https://docs.python.org/3/library/pwd.html
🔸 pathlib
— удобная работа с путями в ООП-стиле
https://docs.python.org/3/library/pathlib.html
🔸 shutil
— копирование, удаление, архивация файлов и директорий
https://docs.python.org/3/library/shutil.html
🔸 tarfile
— создание и извлечение `.tar`-архивов
https://docs.python.org/3/library/tarfile.html
📦 Эти модули — основа для написания удобных и мощных CLI-утилит, скриптов и системных инструментов.
@pythonl