This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Полезный хак для 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)
Этот хак показывает байткод Python-функции, позволяя заглянуть под капот интерпретатора. Используется для:
• отладки «странного» поведения функций
• анализа производительности на уровне Python VM
• изучения, как Python интерпретирует тернарные выражения, замыкания, генераторы и т. д.
Модуль dis встроен в стандартную библиотеку и часто игнорируется — но это мощный инструмент для продвинутых разработчиков и авторов интерпретаторов.
@Python_Community_ru
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)
Этот хак показывает байткод Python-функции, позволяя заглянуть под капот интерпретатора. Используется для:
• отладки «странного» поведения функций
• анализа производительности на уровне Python VM
• изучения, как Python интерпретирует тернарные выражения, замыкания, генераторы и т. д.
Модуль dis встроен в стандартную библиотеку и часто игнорируется — но это мощный инструмент для продвинутых разработчиков и авторов интерпретаторов.
@Python_Community_ru
🤖 AI, который сам пишет код — умный агент на базе LangGraph
Проект находится в активной разработке и уже умеет автоматизировать весь цикл: от планирования проекта до генерации кода. Всё построено на надёжных multi-agent workflow'ах с использованием LangGraph.
🚀 Что делает агент:
🧠 Понимает задачу и строит план
AI-архитектор анализирует требования и создаёт пошаговый план разработки.
💻 Генерирует и редактирует код
Dev-агент аккуратно применяет изменения в кодовой базе, редактируя конкретные файлы.
🔁 Разделяет роли — надёжнее работает
Отдельные агенты для планирования и реализации — меньше ошибок и больше контроля.
🧬 Понимает структуру проекта
Использует tree-sitter и семантический поиск, чтобы ориентироваться в коде как человек.
📦 Работает по шагам
Разбивает задачи на мелкие изменения — удобно для review и безопасно для CI.
💡 Если интересуешься автоматизацией разработки, AI-помощниками и мультиагентными системами — стоит попробовать уже сейчас.
▪ Github (https://github.com/langtalks/swe-agent)
#AI #AutoCoding #LangGraph #DevTools #MultiAgent #CodeAutomation
@Python_Community_ru
Проект находится в активной разработке и уже умеет автоматизировать весь цикл: от планирования проекта до генерации кода. Всё построено на надёжных multi-agent workflow'ах с использованием LangGraph.
🚀 Что делает агент:
🧠 Понимает задачу и строит план
AI-архитектор анализирует требования и создаёт пошаговый план разработки.
💻 Генерирует и редактирует код
Dev-агент аккуратно применяет изменения в кодовой базе, редактируя конкретные файлы.
🔁 Разделяет роли — надёжнее работает
Отдельные агенты для планирования и реализации — меньше ошибок и больше контроля.
🧬 Понимает структуру проекта
Использует tree-sitter и семантический поиск, чтобы ориентироваться в коде как человек.
📦 Работает по шагам
Разбивает задачи на мелкие изменения — удобно для review и безопасно для CI.
💡 Если интересуешься автоматизацией разработки, AI-помощниками и мультиагентными системами — стоит попробовать уже сейчас.
▪ Github (https://github.com/langtalks/swe-agent)
#AI #AutoCoding #LangGraph #DevTools #MultiAgent #CodeAutomation
@Python_Community_ru
GitHub
GitHub - langtalks/swe-agent: 🤖 AI-powered software engineering multi-agent system with researcher and developer agents that automate…
🤖 AI-powered software engineering multi-agent system with researcher and developer agents that automate code implementation through intelligent planning and execution. Built with LangGraph multi-ag...
💎 Quadratic — электронные таблицы нового поколения с кодом и ИИ. Проект предоставляет гибридную среду, где формулы, Python и SQL работают бок о бок, позволяя анализировать миллионы строк прямо в браузере без потерь производительности.
Особенность инструмента — технологичный стек (Rust, WebAssembly, WebGL). Интерфейс с поддержкой 60 FPS и масштабированием как в Figma делает работу с большими данными неожиданно плавной.
🤖 GitHub (https://github.com/quadratichq/quadratic)
@Python_Community_ru
Особенность инструмента — технологичный стек (Rust, WebAssembly, WebGL). Интерфейс с поддержкой 60 FPS и масштабированием как в Figma делает работу с большими данными неожиданно плавной.
🤖 GitHub (https://github.com/quadratichq/quadratic)
@Python_Community_ru
🧠 16 июня все самое важное в мире технологий ищите в Санкт-Петербурге!
В ТехноХабе Сбера состоится большая сессия в рамках серии мероприятий международной конференции AI Journey.
Именно здесь соберутся лидеры AI-индустрии из разных стран, чтобы обсудить реальные кейсы внедрения AI, архитектуры нового поколения, крутой апгрейд нейронки GigaChat, самое свежее в исследованиях GenAI и то, что уже завтра станет новым стандартом!
📌 Подключайтесь к трансляции (https://aij.ru/lections?utm_source=telegram&utm_medium=fix&utm_campaign=aij_regional_lections_seeding_2025_post&utm_term=pythonl&erid=2Vtzquqn1dY), чтобы не отставать от будущего.
@Python_Community_ru
В ТехноХабе Сбера состоится большая сессия в рамках серии мероприятий международной конференции AI Journey.
Именно здесь соберутся лидеры AI-индустрии из разных стран, чтобы обсудить реальные кейсы внедрения AI, архитектуры нового поколения, крутой апгрейд нейронки GigaChat, самое свежее в исследованиях GenAI и то, что уже завтра станет новым стандартом!
📌 Подключайтесь к трансляции (https://aij.ru/lections?utm_source=telegram&utm_medium=fix&utm_campaign=aij_regional_lections_seeding_2025_post&utm_term=pythonl&erid=2Vtzquqn1dY), чтобы не отставать от будущего.
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🎥 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 (https://github.com/assetnote/newtowner)
@Python_Community_ru
Новая техника 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 (https://github.com/assetnote/newtowner)
@Python_Community_ru
🖥 Two Claps Open — инструмент, который открывает Chrome или активирует голосового помощника, когда пользователь хлопает в ладоши два раза 👏
💬 Как это работает:
• Слушает микрофон через pyaudio
• Реагирует на два быстрых хлопка подряд
• Открывает браузер или помощника
Возможности зависят только от фантазии:
• Включай музыку или YouTube по хлопку
• Открывай рабочий дашборд при запуске ПК
• Управляй умным домом — включай свет или открывай дверь хлопком
Чтобы понять, как "выглядит" хлопок в аудиосигнале, разработчик записал его и провёл преобразование Фурье. Оказалось, что основная энергия хлопка сосредоточена в диапазоне 1.4–1.8 кГц. Дальше был настроен полосовой фильтр, чтобы выделять только этот диапазон и отсекать шум.
После фильтрации система отслеживает пики в сигнале. Если зафиксировано три хлопка подряд с минимальным интервалом, автоматически запускается Chrome (или любая команда на ваш выбор).
Реализуется в реальном времени — просто и удобно для управления без рук!
▪ Github (https://github.com/Yutarop/two_claps_open)
@Python_Community_ru
💬 Как это работает:
• Слушает микрофон через pyaudio
• Реагирует на два быстрых хлопка подряд
• Открывает браузер или помощника
Возможности зависят только от фантазии:
• Включай музыку или YouTube по хлопку
• Открывай рабочий дашборд при запуске ПК
• Управляй умным домом — включай свет или открывай дверь хлопком
Чтобы понять, как "выглядит" хлопок в аудиосигнале, разработчик записал его и провёл преобразование Фурье. Оказалось, что основная энергия хлопка сосредоточена в диапазоне 1.4–1.8 кГц. Дальше был настроен полосовой фильтр, чтобы выделять только этот диапазон и отсекать шум.
После фильтрации система отслеживает пики в сигнале. Если зафиксировано три хлопка подряд с минимальным интервалом, автоматически запускается Chrome (или любая команда на ваш выбор).
Реализуется в реальном времени — просто и удобно для управления без рук!
▪ Github (https://github.com/Yutarop/two_claps_open)
@Python_Community_ru
GitHub
GitHub - Yutarop/two_claps_open: Open Chrome (or any file/app) by just clapping twice
Open Chrome (or any file/app) by just clapping twice - Yutarop/two_claps_open
Автоматизируйте ML-эксперименты с GitLab CI/CD и CML
📅 17 июня в 20:00 мск — бесплатный вебинар с Николаем Осиповым
Хотите, чтобы эксперименты запускались сами, метрики попадали в Merge Request, а модели легко воспроизводились?
На вебинаре:
— Интегрируем GitLab CI/CD в ML-процесс
— Используем CML для автоматической визуализации результатов
— Запускаем обучение моделей при каждом коммите
— Настраиваем работу в облаке и версионирование через Git
📌 Полезно для:
— Data Scientists, внедряющих MLOps
— ML-инженеров, автоматизирующих пайплайны
— Техлидов, выстраивающих эффективный ML-конвейер
🎯 Итог: настроите стабильную и воспроизводимую систему ML-разработки — без ручного запуска, с чистыми метриками и контролем версий.
Присоединяйтесь к бесплатному вебинару и получите скидку на большое обучение онлайн-курса «MLOps».
👉 Регистрируйтесь по ссылке и начните выводить ML на прод https://clck.ru/3Ma8c7
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📅 17 июня в 20:00 мск — бесплатный вебинар с Николаем Осиповым
Хотите, чтобы эксперименты запускались сами, метрики попадали в Merge Request, а модели легко воспроизводились?
На вебинаре:
— Интегрируем GitLab CI/CD в ML-процесс
— Используем CML для автоматической визуализации результатов
— Запускаем обучение моделей при каждом коммите
— Настраиваем работу в облаке и версионирование через Git
📌 Полезно для:
— Data Scientists, внедряющих MLOps
— ML-инженеров, автоматизирующих пайплайны
— Техлидов, выстраивающих эффективный ML-конвейер
🎯 Итог: настроите стабильную и воспроизводимую систему ML-разработки — без ручного запуска, с чистыми метриками и контролем версий.
Присоединяйтесь к бесплатному вебинару и получите скидку на большое обучение онлайн-курса «MLOps».
👉 Регистрируйтесь по ссылке и начните выводить ML на прод https://clck.ru/3Ma8c7
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ MicroVMS — новая платформа для запуска кода от AI-агентов с максимальной безопасностью и скоростью.
В отличие от Docker и других тяжелых решений, MicroVMS использует легковесные песочницы для быстрой изоляции, мгновенного старта и простого управления.
● Поддержка разных сред: Python, Node.js и другие
● Идеально для AI-агентов — разработка и запуск без лишних сложностей
● Удобная система управления проектами — настройка песочниц в пару кликов
Если вы хотите запускать код AI-агентов быстро, безопасно и удобно — обратите внимание на MicroVMS.
pip install microsandbox
🔗 Github (https://github.com/microsandbox/microsandbox)
@Python_Community_ru
В отличие от Docker и других тяжелых решений, MicroVMS использует легковесные песочницы для быстрой изоляции, мгновенного старта и простого управления.
● Поддержка разных сред: Python, Node.js и другие
● Идеально для AI-агентов — разработка и запуск без лишних сложностей
● Удобная система управления проектами — настройка песочниц в пару кликов
Если вы хотите запускать код AI-агентов быстро, безопасно и удобно — обратите внимание на MicroVMS.
pip install microsandbox
🔗 Github (https://github.com/microsandbox/microsandbox)
@Python_Community_ru
🖥 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] # Всё сразу
🔧 Пример (SQLAlchemy)
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
py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.
Полноценный PostgreSQL — без его тяжеловесности.
▪Github (https://github.com/wey-gu/py-pglite)
#python #sql #PostgreSQL #opensource
@Python_Community_ru
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] # Всё сразу
🔧 Пример (SQLAlchemy)
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
py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.
Полноценный PostgreSQL — без его тяжеловесности.
▪Github (https://github.com/wey-gu/py-pglite)
#python #sql #PostgreSQL #opensource
@Python_Community_ru
🚀 Pipedream — платформа для создания интеграций и автоматизаций между сервисами. Этот инструмент позволяет соединять более 1000 приложений через готовые компоненты или собственный код на Node.js, Python, Go и Bash.
Главное преимущество проекта — это гибкость: можно быстро настроить триггеры и цепочки действий без сложной инфраструктуры. Для кастомных сценариев доступно выполнение произвольного кода с подключением любых npm/pip-пакетов. Интеграции развертываются в облаке Pipedream, что избавляет от необходимости настраивать серверы.
🤖 GitHub (https://github.com/PipedreamHQ/pipedream)
@Python_Community_ru
Главное преимущество проекта — это гибкость: можно быстро настроить триггеры и цепочки действий без сложной инфраструктуры. Для кастомных сценариев доступно выполнение произвольного кода с подключением любых npm/pip-пакетов. Интеграции развертываются в облаке Pipedream, что избавляет от необходимости настраивать серверы.
🤖 GitHub (https://github.com/PipedreamHQ/pipedream)
@Python_Community_ru
🚀 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__"
✅ Идеален для больших Django-проектов, где важна скорость ответа.
🔗 GitHub: https://github.com/alexandercollins/turbodrf
@Python_Community_ru
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__"
✅ Идеален для больших Django-проектов, где важна скорость ответа.
🔗 GitHub: https://github.com/alexandercollins/turbodrf
@Python_Community_ru
🖥 Вышел 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 .
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 — это не просто исправление багов, а реальное ускорение и упрощение работы для всех, кто ведёт большие проекты, часто сливает ветки и заботится о “чистоте” репозитория. Новые команды делают жизнь проще, а старые баги — ушли в прошлое.
➡️ Почитать про все обновления (https://github.blog/open-source/git/highlights-from-git-2-50/)
@Python_Community_ru
Вот основные обновления:
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 .
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 — это не просто исправление багов, а реальное ускорение и упрощение работы для всех, кто ведёт большие проекты, часто сливает ветки и заботится о “чистоте” репозитория. Новые команды делают жизнь проще, а старые баги — ушли в прошлое.
➡️ Почитать про все обновления (https://github.blog/open-source/git/highlights-from-git-2-50/)
@Python_Community_ru
В преддверии новой активности мы собрали в одну папку 18 Telegram-каналов известных профессионалов и попросили их авторов подготовить для вас документы, которые помогут:
Please open Telegram to view this post
VIEW IN TELEGRAM