50319
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3GMMF6
Если вы любите ретро-игры и цените открытый код, вам понравится OS Game Clones
На сайте собраны десятки открытых клонов классических игр, которыми можно наслаждаться на современных системах, изучать их исходники или использовать как основу для собственных проектов. 👍
👉 @PythonPortal
Отличный open source инструмент для Web Scraping
HeadlessX позволяет легко извлекать контент с любых веб-страниц, делать скриншоты и PDF. Инструмент поддерживает интеграции с n8n, Zapier и другими сервисами автоматизации. 🎅
Более 40 техник обхода детектирования делают его удобным для сложного скрэпинга
→ https://github.com/SaifyXPRO/HeadlessX
👉 @PythonPortal
Совет по PEP8:
Для лучшей читаемости переносите строки перед бинарными операторами (например, +, -, *, /), а не после них. Это позволяет выравнивать операторы с их операндами и избегать их разбрасывания по разным строкам.
Пример:
# good
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest)
# bad
income = (gross_wages +
taxable_interest +
(dividends - qualified_dividends) -
ira_deduction -
student_loan_interest)
Data-вызов от Яндекса: обновленные тестовые задания на стажировку для будущих аналитиков
Яндекс приглашает на стажировку для начинающих аналитиков в Москве и Санкт-Петербурге! Компания только обновила тестовые задания, чтобы у всех, кто пробовал силы ранее, был шанс попробовать снова.
Вы сможете работать над продуктами и решать важные бизнес-задачи: запускать А/В-тесты, собирать датасеты, строить дашборды и анализировать метрики.
Стажеров ждёт:
✅ Решение реальных задач для сервисов с миллионной аудиторией
✅ Гибкий график, который удобно совмещать с учёбой
✅ Поддержка ментора
✅ Зарплата на весь срок стажировки
✅ Айтиобщага для участников из других городов
✅ Отложенный офер, если вы ещё учитесь
Используйте возможность влиять на ключевые решения и видеть, как ваша работа меняет продукты для миллионов пользователей. Подать заявку, получить советы по подготовке и найти полезные материалы можно на сайте.
Практикуемся в алгоритмах на любом языке
На платформе CSES Problem Set доступно более 400 задач, охватывающих широкий спектр тем, включая динамическое программирование, графы, строки, математические задачи и многое другое, что можно решать на самых популярных языках: C/C++, Java, Python, C#.
👉 @PythonPortal
Вышел Typer 0.19.0
Теперь можно использовать Literal из typing для CLI-параметров, которые принимают только одно из нескольких значений. Самая долгожданная фича наконец доступна. 🎰
https://github.com/fastapi/typer
👉 @PythonPortal
На такую серьезную работу и половину спринта можно списать
👉 @PythonPortal
Генерация UUID в Python ускорилась в 30 раз и теперь почти на уровне Bun и NodeJS. Но стоит честно упомянуть, что дальше ускорять почти невозможно из-за ограничений генерации случайных чисел.
Ссылка на PR —> https://github.com/python/cpython/pull/139123
👉 @PythonPortal
Visual Studio Code теперь умеет автоматически обрабатывать TODO-комментарии в коде. С новой функцией и помощью GitHub Copilot можно за два клика решать задачи и сразу создавать PR.
👉 @PythonPortal
Лайфхак для GitHub: теперь можно превращать любой репозиторий в один текстовый файл, удобный для LLM
Просто замените «hub» на «1file» в URL репозитория, и все файлы объединятся в один чистый текст. Файл можно скачать в обычном или сжатом формате.
Это позволяет дать полную контекстную информацию любому ИИ, например ChatGPT или Claude, чтобы разбирать код, отвечать на вопросы или помогать исправлять ошибки.
Идеальный способ быстрее изучать и анализировать репозитории. ✏️
👉 @PythonPortal
4 способа скопировать список в Python
В Python есть несколько способов сделать копию списка. Но важно понимать разницу между shallow copy (поверхностная копия) и deep copy (полная копия).
original = [1, 2, [3, 4]]
# 1. Срез (shallow copy)
copy1 = original[:]
# 2. Метод .copy() (shallow copy)
copy2 = original.copy()
# 3. Через list() (shallow copy)
copy3 = list(original)
# 4. deepcopy (deep copy)
import copy
copy4 = copy.deepcopy(original)
original[2].append(5)
print(copy1)
# [1, 2, [3, 4, 5]] — вложенный список изменился!
print(copy4)
# [1, 2, [3, 4]] — без изменений
Когда попросил гпт помочь в проблеме, но он добавил ещё одну проблему:
👉 @PythonPortal
Начни работу с Docker на практике
Вот подборка годных практических заданий:
Установи Docker Engine на Linux: https://labs.iximiuz.com/challenges/docker-install-on-ubuntu
Запусти свои первые контейнеры: https://labs.iximiuz.com/challenges/docker-101-container-run
Собери и опубликуй свои первые образы: https://labs.iximiuz.com/challenges/build-and-publish-container-image-with-docker
Перемещай образы между репозиториями: https://labs.iximiuz.com/challenges/copy-container-image-from-one-repository-to-another-with-docker
Вакансия: Руководитель группы разработки (Python), Tech Lead
Ссылка на вакансию
Python-библиотека FindMy .py позволяет работать с сетью Apple Find My без Mac.
С её помощью можно получать и расшифровывать данные о местоположении AirTags и других аксессуаров, сканировать рядом находящиеся устройства и управлять ключами аксессуаров.
Установить просто через pip install findmy, а примеры использования есть в папке examples. Подробнее на GitHub
👉 @PythonPortal
Время полезных шпаргалок: нашел шпаргалку с топ-9 самых популярных HTTP-запросов
Забираем в сохранёнки
👉 @PythonPortal
🔍Тестовое собеседование на Middle Python в четверг с разработчиком из Авито
25 сентября(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
В PyTorch выявлены два неудачных дефолтных параметра в DataLoader, которые серьёзно снижают производительность при обучении моделей. Исправление этих настроек позволяет добиться примерно пятикратного ускорения. 🦆
При обучении на GPU данные переносятся на устройство через .to(device), после чего все вычисления выполняются уже на видеокарте. В итоге процесс получается неэффективным: когда работает GPU, CPU простаивает, и наоборот.
Использование фиксации памяти решает эту проблему. Пока модель обучается на первом мини-батче, CPU успевает заранее перенести второй мини-батч на GPU. Таким образом, видеокарта не простаивает в ожидании новых данных и сразу начинает вычисления с готовым батчем.
Реализовать это просто:
- добавить pin_memory=True в DataLoader,
- при передаче данных использовать .to(device, non_blocking=True)
Кроме того, рекомендуется задать num_workers в DataLoader для параллельной загрузки данных.
Тесты показывают, что такие настройки дают заметное ускорение, что подтверждается результатами на графиках.
👉 @PythonPortal
Визуализация Python-объектов и ссылок
Многие начинающие Python-разработчики сталкиваются с путаницей при работе с изменяемостью и ссылками между переменными. Особенно тяжело разобраться при отладке сложных структур данных, когда непонятно, как именно они связаны. ⌨️
Поэтому держите memory_graph — опенсорс тул для визуализации Python-объектов и ссылок. Он показывает структуру данных, стек вызовов и связи между переменными.
А также поддерживает работу с рекурсией и такими структурами, как бинарные деревья или связанные списки.
Работает в VS Code, Jupyter, PyCharm и доступен онлайн без установки.
👉 @PythonPortal
⚡️ На Stepik вышел курс по Linux
Внутри 20+ модулей: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой).
Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами.
После прохождения вы получите сертификат, который можно добавить в резюме.
Есть бесплатные демо-уроки для ознакомления. В ближайшие 48 часов курс доступен со скидкой 20%: открыть курс на Stepik (скидка применяется по этой ссылке)
Полезная находка для Python-разработчиков: статья «20 лучших практик Python 2025» от Aglowid IT Solutions.
В ней собраны ключевые советы по эффективной разработке -> PEP-стандарты, структура проекта, чистый и идиоматичный код, тесты и работа с исключениями.
Честно, читаешь и сразу хочется переписать весь свой проект 🤪
👉 @PythonPortal
Как проходит первый тест новой фичи
👉 @PythonPortal
Нашлась утилита Real-Time Voice Cloning
Которая клонирует речь и воспроизводит любые фразы с вашей интонацией всего за пару секунд записи.
Она работает на Python, генерирует речь в реальном времени и полностью локальна, никаких облаков и ограничений. 🫠
👉 @PythonPortal
Хотите создавать SQL-базы данных визуально? 🔥
Попробуйте этот онлайн-инструмент, который позволяет проектировать и моделировать базы данных с помощью удобного drag-and-drop интерфейса.
Он помогает закреплять знания SQL, лучше понимать связи между таблицами и работать без установки программ или регистрации.
Инструмент полностью бесплатен и с открытым исходным кодом, а также поддерживает импорт и экспорт SQL-кода.
👉 @PythonPortal
Python-библиотека для визуализации архитектуры
Есть удобная Python-библиотека Diagrams, которая позволяет быстро строить архитектурные схемы и диаграммы прямо из кода.
Инструмент отлично подходит для демонстрации идей продукта заказчикам и партнёрам, можно визуализировать облачные сервисы, инфраструктуру или внутренние компоненты системы.
Пример использования:
pip install diagrams
from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS
from diagrams.aws.database import ElastiCache, RDS
from diagrams.aws.network import ELB, Route53
with Diagram("Clustered Web Services", show=False):
dns = Route53("dns")
lb = ELB("lb")
with Cluster("Services"):
svc_group = [ECS("web1"),
ECS("web2"),
ECS("web3")]
with Cluster("DB Cluster"):
db_primary = RDS("userdb")
db_primary - [RDS("userdb ro")]
memcached = ElastiCache("memcached")
dns >> lb >> svc_group
svc_group >> db_primary
svc_group >> memcached