Если вы часто открываете Python REPL — чтобы быстро протестировать идею, посчитать что-то, проверить фрагмент кода или преподавать Python — эти модификации могут серьёзно улучшить ваш опыт.
Начиная с Python 3.13, REPL поддерживает кастомные горячие клавиши, а с Python 3.14 — настройку подсветки синтаксиса.
Используя переменную окружения
PYTHONSTARTUP, можно сделать так, чтобы при запуске REPL автоматически выполнялся код из файла (например, ~/.startup.py):export PYTHONSTARTUP=$HOME/.startup.py
💡 Можно использовать библиотеку pyrepl-hacks, чтобы кастомизировать поведение REPL
Клавиатурные шорткаты:
_repl.bind("Home", "home") # В начало блока
_repl.bind("End", "end") # В конец блока
_repl.bind("Alt+M", "move-to-indentation") # В начало строки без пробелов
_repl.bind("Shift+Tab", "dedent") # Уменьшить отступ
_repl.bind("Alt+Up", "move-line-up") # Поднять строку
_repl.bind("Alt+Down", "move-line-down") # Опустить строку
_repl.bind_to_insert("Ctrl+N", "[2, 3, 5, 8]") # Быстрая вставка чисел
_repl.bind_to_insert("Ctrl+F", '["apple", "banana", "pear"]') # Быстрая вставка строкНастройка цветовой схемы (пример для Solarized Light):
_repl.update_theme(
keyword="green",
builtin="blue",
comment="intense blue",
string="cyan",
number="cyan",
definition="blue",
soft_keyword="bold green",
op="intense green",
)
_pyrepl и _colorize.PYTHONSTARTUP и вернуть REPL в дефолтное состояние.💡 Фишка с sys.path
Чтобы
pyrepl-hacks работал во всех окружениях, автор добавляет путь к нему напрямую:from pathlib import Path
import sys
sys.path.append(str(Path.home() / ".pyhacks"))
Пример кастомной команды:
import pyrepl_hacks as _repl
@_repl.bind("Ctrl+X Ctrl+R", with_event=True)
def subprocess_run(reader, event_name, event):
reader.insert("import subprocess\n")
code = 'subprocess.run("", shell=True)'
reader.insert(code)
Теперь комбинация
Ctrl+X Ctrl+R автоматически вставит шаблон вызова subprocess.run().💡 Зачем всё это
pyrepl-hacks — просто красивая обёртка над внутренними модулями Python, которая делает эти хаки чище и проще.Попробуйте:
pip install pyrepl-hacks
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁43😢6👍2💯2❤1
На чём вы держите свои виртуальные среды, скрипты и ночные сессии с Jupyter?
Расскажите в комментариях:
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯2
🕵️♂️ Инструмент, который показывает, насколько сложно парсить сайт
caniscrape — Python-инструмент, который анализирует защиту сайта до начала парсинга. Это диагностический инструмент, а не средство обхода защиты.
Определяет:
— Cloudflare, Akamai, rate limits, JS-челленджи, CAPTCHA, TLS fingerprinting, honeypot-ловушки
— Даёт оценку сложности (0–10)
— Рекомендует, какие инструменты понадобятся (headless-браузеры, прокси, solver’ы и т.д.)
— Подсказывает, стоит ли использовать scraping API вместо ручного кода
Для кого:
— Разработчиков и дата-инженеров, работающих с защищёнными сайтами
— Исследователей, тестирующих антибот-системы
— Энтузиастов, изучающих технологии защиты от парсеров
Установка:
Пример:
Результат:
➡️ Оценка сложности (0–10)
➡️ Активные защиты
➡️ Рекомендации по подходу
📱 GitHub
🌐 Веб-версия
🐸 Библиотека питониста
#буст
caniscrape — Python-инструмент, который анализирует защиту сайта до начала парсинга. Это диагностический инструмент, а не средство обхода защиты.
Определяет:
— Cloudflare, Akamai, rate limits, JS-челленджи, CAPTCHA, TLS fingerprinting, honeypot-ловушки
— Даёт оценку сложности (0–10)
— Рекомендует, какие инструменты понадобятся (headless-браузеры, прокси, solver’ы и т.д.)
— Подсказывает, стоит ли использовать scraping API вместо ручного кода
Для кого:
— Разработчиков и дата-инженеров, работающих с защищёнными сайтами
— Исследователей, тестирующих антибот-системы
— Энтузиастов, изучающих технологии защиты от парсеров
Установка:
pip install caniscrape
playwright install chromium
pipx install wafw00f
Пример:
caniscrape https://example.com
Результат:
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
🪄 Slint 1.14 — масштабирование, вращение и асинхронность в Python
Вышел релиз Slint 1.14, приносящий масштабные обновления для UI-разработки:
новые возможности трансформации графики и улучшенную интеграцию с Python.
✅ Универсальные графические трансформации
Теперь масштабирование (scale) и вращение (rotate) — это часть языка Slint по умолчанию.
Можно трансформировать любой элемент, а не только
➡️ Это упрощает структуру интерфейсов — больше не нужно задумываться, как правильно “родительствовать” элементы для трансформации.
Посмотреть демо можно в официальном блоге Slint.
✅ Улучшенная интеграция с Python
Добавлена поддержка asyncio. Теперь Slint работает как полноценный
Пример:
Асинхронные колбэки и поддержка локализации теперь тоже работают без дополнительной настройки.
✅ Унифицированный рендеринг текста
Все движки рендеринга (FemtoVG, Skia, Qt и Software) теперь используют общую систему Fontique и Parley (от Linebender).
Это даёт:
— одинаковое поведение текста на всех платформах
— улучшенный выбор шрифтов (особенно в Linux)
— подготовку к поддержке rich text
✔️ Полный список — в ChangeLog
✔️ Документация
🐸 Библиотека питониста
#свежак
Вышел релиз Slint 1.14, приносящий масштабные обновления для UI-разработки:
новые возможности трансформации графики и улучшенную интеграцию с Python.
Теперь масштабирование (scale) и вращение (rotate) — это часть языка Slint по умолчанию.
Можно трансформировать любой элемент, а не только
Image или Text.Посмотреть демо можно в официальном блоге Slint.
Добавлена поддержка asyncio. Теперь Slint работает как полноценный
asyncio.EventLoop, что делает возможным асинхронный код и работу с библиотеками вроде aiohttp.Пример:
import slint, aiohttp
class AppWindow(slint.loader.app_window.AppWindow):
@slint.callback
async def refresh_poem(self):
async with aiohttp.ClientSession() as session:
async with session.get("https://poetrydb.org/random") as response:
data = await response.json()
self.poem = "\n".join(data[0]["lines"])
async def main():
app = AppWindow()
app.show()
await app.refresh_poem()
slint.run_event_loop(main())
Асинхронные колбэки и поддержка локализации теперь тоже работают без дополнительной настройки.
Все движки рендеринга (FemtoVG, Skia, Qt и Software) теперь используют общую систему Fontique и Parley (от Linebender).
Это даёт:
— одинаковое поведение текста на всех платформах
— улучшенный выбор шрифтов (особенно в Linux)
— подготовку к поддержке rich text
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4
💥 Октябрь — месяц апгрейда!
До конца этого месяца действует скидка 40% на все курсы Proglib Academy (кроме AI-агентов, ML для старта и математики).
Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».
👨💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.
👨🏫 Преподаватели — инженеры из Яндекса и ВШЭ.
🎓 Сертификат по итогам обучения — в портфолио.
➖ 47 видеоуроков и 150 практических задач;
➖ поддержка преподавателей и чат;
➖ доступ к материалам на 12 месяцев.
Полная программа курса тут 👈
👉 Остальные курсы
До конца этого месяца действует скидка 40% на все курсы Proglib Academy (кроме AI-агентов, ML для старта и математики).
Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».
👨💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.
👨🏫 Преподаватели — инженеры из Яндекса и ВШЭ.
🎓 Сертификат по итогам обучения — в портфолио.
➖ 47 видеоуроков и 150 практических задач;
➖ поддержка преподавателей и чат;
➖ доступ к материалам на 12 месяцев.
Полная программа курса тут 👈
👉 Остальные курсы
Команда PyTorch представила Monarch — новый фреймворк для распределенных вычислений, который кардинально упрощает разработку сложных ML-воркфлоу.
🔥 Главная идея Monarch: иодель программирования с единым контроллером.
Вместо того чтобы вручную координировать тысячи узлов, вы пишете один скрипт, который оркестрирует все распределенные ресурсы. Ваш код выглядит и ощущается как простая Python-программа для одной машины, но масштабируется на тысячи GPU!
Ключевые особенности Monarch:
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4👏1
🐍 Singleton в Python: зачем он нужен (и почему, скорее всего, не нужен)
Создание singleton-класса — хороший способ понять, как Python создаёт объекты. Но в реальном коде вам он почти никогда не понадобится.
1️⃣ Что такое Singleton
— Это паттерн проектирования, где класс может создать только один объект.
— Каждый раз, когда вы пытаетесь создать новый экземпляр, вы получаете тот же самый объект.
2️⃣ Когда может пригодиться
Пример из игры:
— Несколько игроков играют одновременно, нужен единственный лидерборд.
— Если каждый создаёт свой экземпляр, смысл таблицы исчезает.
Другие примеры:
— Подключение к базе данных или к железу — только один коннектор
— Логгер или менеджер конфигурации — чтобы был один источник истины
💡 Главная мысль:
Singleton — интересная учебная тема, но в Python чаще находят более простые альтернативы: модуль с функциями, глобальные объекты или dependency injection.
➡️ Подробнее об этом — ссылка на статью
🐸 Библиотека питониста
#буст
Создание singleton-класса — хороший способ понять, как Python создаёт объекты. Но в реальном коде вам он почти никогда не понадобится.
— Это паттерн проектирования, где класс может создать только один объект.
— Каждый раз, когда вы пытаетесь создать новый экземпляр, вы получаете тот же самый объект.
Пример из игры:
— Несколько игроков играют одновременно, нужен единственный лидерборд.
— Если каждый создаёт свой экземпляр, смысл таблицы исчезает.
Другие примеры:
— Подключение к базе данных или к железу — только один коннектор
— Логгер или менеджер конфигурации — чтобы был один источник истины
Singleton — интересная учебная тема, но в Python чаще находят более простые альтернативы: модуль с функциями, глобальные объекты или dependency injection.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1
Какой необычный тип данных Python был вдохновлён математикой из теории множеств?
Anonymous Quiz
5%
list
5%
dict
69%
set
22%
tuple
❤3👍2
🧩 Практика и обучение
— Модуль `json` для начинающих — пошаговое введение в работу с JSON в Python с домашним заданием.
— Асинхронный Python для начинающих — руководство по asyncio с практическим примером и объяснением основных концепций.
— Разбираемся со звёздочками: *args и **kwargs — простое объяснение популярных конструкций Python для передачи аргументов.
⚙️ Алгоритмы и кодинг
— Сравнение алгоритмов сортировки с Pygame-визуализацией — визуальный разбор популярных сортировок и их особенностей на Python.
— 132 строчки, которые рождают математического гипермонстра — креативный проект с Python для генерации сложных математических структур.
— Практическое тестирование приложений на Python — гайд по тестированию с примерами для реальных проектов.
🧠 Задачи и собеседования
— 10 практических задач на Python для новичков — проверка базовых навыков через короткие практические задания.
[Читать](https://habr.com/ru/articles/959786/)
— 10 вопросов на собеседовании Junior Python-разработчика — типичные вопросы и ловушки для начинающих Python-разработчиков.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4
Forwarded from Библиотека задач по Data Science | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Data Science | тесты, код, задания
🧠 Готовишься к собесам, а ноутбук еле тянет IDE?
Самое время прокачать скиллы и апгрейднуть железо!
Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻
Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!
📚 Среди курсов:
▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.
▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.
▫️ Python, математика для DS, основы IT и другие направления.
👉 Принять участие
Самое время прокачать скиллы и апгрейднуть железо!
Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻
Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!
📚 Среди курсов:
▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.
▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.
▫️ Python, математика для DS, основы IT и другие направления.
👉 Принять участие
😁6🌚3❤2
🐍 Вышел pip 25.3 — сборка только по PEP 517 и новые build constraints
Основные нововведения:
1️⃣ Новая опция `--build-constraint`
➡️ Позволяет задавать ограничения для зависимостей только на этапе сборки, не затрагивая обычные install constraints.
2️⃣ Сборка из исходников теперь полностью через PEP 517
➡️
3️⃣ Editable-установки теперь только по PEP 660
➡️ pip больше не вызывает
4️⃣ `--dry-run` и `pip lock` стали быстрее
➡️ Если ваш индекс поддерживает метаданные по PEP 658 (например, PyPI), pip больше не скачивает весь пакет, чтобы проверить зависимости.
➡️ Официальный анонс
➡️ Полный changelog
🐸 Библиотека питониста
#свежак
Основные нововведения:
setup.py больше не вызывается напрямую — теперь только официальный интерфейс сборки.setup.py develop. Если вы используете editable с setuptools, обновитесь до v66+.#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Tiny8 — это лёгкий toolkit, который позволяет понять, как компьютер работает изнутри:
от моделей памяти и простейшего ассемблера — до структур данных и визуализации выполнения.
Что в нём классного:
— Никаких лишних зависимостей — только чистая логика.
— Минималистичный дизайн, понятный даже новичкам.
— Можно экспериментировать, менять, ломать и смотреть, что произойдёт.
— Визуализация помогает «увидеть» процесс выполнения инструкций.
📱 Github
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🤩2
В шпаргалке кратко о трёх популярных подходах к ветвлению в Git. Сохраняйте и пользуйтесь!
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
🎁 Конкурс от Proglib Academy!
Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14.
Да-да, не шутка, настоящий, железный, с M3 Pro
Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%.
Чтобы поучаствовать, нужно:
1️⃣ Покупаешь любой курс до конца октября;
2️⃣ Проходишь 2 недели обучения к 15 ноября;
3️⃣ Написать куратору в чат #розыгрыш.
До 15 ноября, потом всё — поезд (и макбук) уйдёт.
👉 Участвовать в розыгрыше
Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14.
Да-да, не шутка, настоящий, железный, с M3 Pro
Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%.
Чтобы поучаствовать, нужно:
1️⃣ Покупаешь любой курс до конца октября;
2️⃣ Проходишь 2 недели обучения к 15 ноября;
3️⃣ Написать куратору в чат #розыгрыш.
До 15 ноября, потом всё — поезд (и макбук) уйдёт.
👉 Участвовать в розыгрыше
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23💯1
Свой приватный PyPI-реестр? Легко! 🎉
Питонисты, ловите полезный инсайт. В SourceCraft можно поднять собственный PyPI-реестр для хранения и распространения пакетов внутри команды или компании.
Формат тот же (twine upload, pip install), но пакеты остаются под вашим полным контролем: доступы, токены, история версий — всё централизовано. Идеально для внутренних библиотек, SDK или CLI-утилит. 👍 Сборка в CI/CD пайплайне и автоматическая публикация в ваш реестр — всё настраивается. Разработчики подключаются через PAT-токен.
Больше никакого риска утечки внутреннего кода во внешние каталоги!
Питонисты, ловите полезный инсайт. В SourceCraft можно поднять собственный PyPI-реестр для хранения и распространения пакетов внутри команды или компании.
Формат тот же (twine upload, pip install), но пакеты остаются под вашим полным контролем: доступы, токены, история версий — всё централизовано. Идеально для внутренних библиотек, SDK или CLI-утилит. 👍 Сборка в CI/CD пайплайне и автоматическая публикация в ваш реестр — всё настраивается. Разработчики подключаются через PAT-токен.
Больше никакого риска утечки внутреннего кода во внешние каталоги!
👍7🔥1👏1