Python Portal
55.4K subscribers
1.92K photos
128 videos
46 files
508 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Если вам когда-то казалось, что вы безумны — держитесь

Есть люди, которые всерьёз решили писать Python с фигурными скобками

Так появился Bython — препроцессор, который превращает {} в питоновские отступы

Пишешь, как на C/JavaScript, а получаешь работающий Python

def sanity_check() {
print("Это точно Python?");
}


Устанавливается через pip install bython

Команда запуска: bython script.by

> PyPI: https://pypi.org/project/Bython
> GitHub: https://github.com/mathialo/bython

Последнее обновление было в 2018 — для фана и экспериментов пойдёт 🎧

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочешь быстро вытаскивать структурированные данные и инсайты из PDF, DOCX и других документов?

Попробуй ContextGem — LLM-фреймворк, который делает это максимально просто и прозрачно.

Всего несколько строк Python-кода и у тебя:

> Чистые таблицы
> Структурированные поля
> Конкретные инсайты

Работает на базе LLM. Полностью Open Source ❤️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
С выходом Python 3.11, 3.12 и 3.14 изменилась даже такая простая вещь, как вычисление скалярного произведения векторов

Сначала всё выглядело просто:

sum(map(operator.mul, vec1, vec2))


Но не все знают, что встроенная map может принимать 2 и более итерируемых объектов как источники аргументов для функции, которую она применяет

С Python 3.12 добавился аргумент strict, и стало логично его использовать

Однако из-за zip приходится “распаковывать” кортежи — поэтому тут нужен itertools.starmap, а не обычный map.

Наконец, в Python 3.14 всё снова упростилось:

sum(map(operator.mul, vec1, vec2, strict=True))


Встроенная map получает именованный аргумент strict, как и zip 😍

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Стэнфорд выложил, пожалуй, самые понятные и полезные шпаргалки по LLM и трансформерам

В них есть всё, что нужно:

• self-attention, flash attention, LoRA, SFT
• mixture of experts, дистилляция, квантизация
• RAG, агенты, LLM как "судья"

И главное — всё это бесплатно и в открытом доступе 🤍

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочешь общаться с ИИ от DeepSeek без ограничений и подписок?

Тогда зацени DeeperSeek —> неофициальную Python-библиотеку, которая позволяет напрямую работать с сайтом DeepSeek, обходя официальный API

Отправка сообщений и получение ответов
Обход Cloudflare-защиты
Поддержка входа по e-mail и токену
• Работает даже в Google Colab
Работает с DeepThink и нейропоиском

💖спасибо, админ
👍 — имба

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
mementopython3-russian_with_link.pdf
315.1 KB
У меня для тебя подгон

Если ты только начал изучать Python или уже пишешь скрипты, но забываешь синтаксис — вот то, что тебе нужно. Эта краткая шпаргалка охватывает всё самое важное

Из разряда > распечатай и повесь перед собой 💖

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Скрывай личную информацию в своём Python-коде

Допустим, тебе нужно вывести email.

Но ты хочешь сделать тот самый эффект, как в ro*****@mathspp.com

В Python это довольно просто

Всё, что нужно — это f-строка и подходящие спецификаторы форматирования

1. Разделяем email

Используем str.partition, чтобы отделить имя пользователя (user) от домена:

user, _, domain = email.partition("@")


2. Показываем первые символы

Берём первые два:

user[:2]  # → 'ro'


3. Создаём поле нужной ширины

Поле должно быть длиной, как user, то есть len(user)

Используем f-строку:

f"{user[:2]:<{len(user)}}"


Пока что получится:

ro     


4. Меняем символ заполнения

По умолчанию заполняется пробелами, но мы хотим *.

Просто указываем его:

f"{user[:2]:*<{len(user)}}"


Получаем:

ro*****


5. Собираем всё вместе

Добавляем домен:

f"{user[:2]:


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
В Python 3.14 добавили подсветку синтаксиса в новой интерактивной оболочке PyREPL

Теперь прямо в консоли Python код выглядит красиво, как в редакторе > ключевые слова, строки, числа и даже комментарии подсвечиваются цветом.

И это не всё. Можно настроить тему под себя

Пример дефолтной темы:

theme = {
"PROMPT": colors.BOLD_MAGENTA,
"KEYWORD": colors.BOLD_BLUE,
"BUILTIN": colors.CYAN,
"COMMENT": colors.RED,
"STRING": colors.GREEN,
"NUMBER": colors.YELLOW,
"OP": colors.RESET,
"DEFINITION": colors.BOLD,
"SOFT_KEYWORD": colors.BOLD_BLUE,
"RESET": colors.RESET,
}


Свою можно поставить так:

1. Меняем цвета для тех токенов, которые хотим подсветить. Складываем в импортируемый модуль. Например: your_theme

2. При старте Python установи тему через PYTHONSTARTUP

export PYTHONSTARTUP='import _colorize; from your_theme import theme; _colorize.set_theme(theme)'


—> Документация по PYTHONSTARTUP: клик
—> PR с реализацией подсветки: клик

Вот тут реализация подсветки, она довольно простая ❤️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Найти самый недавно изменённый файл в папке — это одна строка на Python

Всё, что нужно — это встроенная функция max и пользовательская функция key

Хочешь только файлы? Фильтруй с помощью генератора.

Нужен рекурсивный обход? Используй .rglob("*") вместо iterdir ❤️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
НОВОЕ: топовый репозиторий на GitHub для дата-сайентистов, работающих с генеративным ИИ

Экосистема LangGraph включает:

1. Готовые агенты
2. AI-агенты для дата-сайенса
3. LangMem — память для агентов
4. LangGraph Supervisor — управление агентами
5. Open Deep Research — открытые исследования
6. LangGraph Reflection — саморефлексия агентов
7. LangGraph Big Tool — мощные инструменты
8. LangGraph CodeAct — агенты, пишущие код
9. LangGraph Swarm — координация нескольких агентов
10. LangGraph MCP Adapters — адаптеры под разные среды

Если работаешь с LLM — стоит заценить 💖

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Громадный сборник шпаргалок разработчика на любой вкус

https://quickref.me — сайт, где собраны десятки крутых шпаргалок:

> Git, Docker, Bash, SQL, Python, Regex, PostgreSQL, Markdown и многое другое

Прямо то, что нужно

Если не хочешь спрашивать у чат джпт по 100 раз — добавь в закладки 🤍

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Используйте тип Literal в сигнатурах Python-функций для аргументов, представляющих варианты

Это лучше, чем использовать общий тип, к которому относятся эти значения

Более строгое указание типов помогает раньше ловить ошибки.

Кроме того, это документирует допустимые значения

Ставь лукас если зашёл пост ❤️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
ty — новый сверхбыстрый type checker для Python от Astral

Анонсирован ty — проверщик типов и языковой сервер, написанный на Rust.

В тестах он в 10–100 раз быстрее аналогов (на реальных проектах — до 600x быстрее Mypy 😳)

Цель —> сделать лучшую цепочку инструментов для статического анализа Python, которая масштабируется на десятки и сотни миллионов строк кода

Сейчас это превью-версия

Но уже работает:

> ty check file.py
> ty server как LSP (VS Code, Neovim и др.)
> MIT-лицензия, можно использовать где угодно: CLI, CI, редакторы, команды

Построен на тех же принципах, что rust-analyzer: инкрементальность, мощная архитектура.

Уже есть поддержка: generics, overloads, protocols и т.д.

Ожидается стабильный релиз позже в этом году

> github.com/astral-sh/ty 💖

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Наконец-то: рабочий Python-скрипт, чтобы найти девушку.

Работает, я проверял.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Как заархивировать файлы в Python за 5 строк

Стандартный модуль zipfile делает всё просто:

import zipfile

files = ['file1.txt', 'file2.txt']
with zipfile.ZipFile('pycl.zip', 'w') as zipf:
for file in files:
zipf.write(file)

print("ZIP file created!")


На выходе — pycl.zip с нужными файлами.

Полезно для бэкенда, автосборки, логов 💪

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Python 3.14.0b1 — первая бета уже доступна!

7 мая 2025 года вышла первая бета-версия Python 3.14. Это означает, что новые функции уже добавлены, и теперь фокус на тестировании и исправлении ошибок

> Что нового читайте здесь: https://www.python.org/downloads/release/python-3140b1/

Следующий релиз: beta 2 — 27 мая 2025 ⚔️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Наткнулся на годноту — LabEx

Более 6000 интерактивных лаб и туториалов по DevOps, Linux, инфобезу, Python, SQL и многому другому.

Всё запускается прямо в браузере — без установки, просто открыл и вперёд.

Есть ИИ-помощник, реальные проекты и прогресс по скилл-дереву

Забираем абсолютно бесплатно тут 💞

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Редкие кадры дикой природы: сишник наблюдает за тем, как питонист пишет код 😵

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Встроенную функцию Python map можно использовать с двумя и более итерируемыми аргументами.

В некоторых ситуациях это делает её гораздо удобнее, чем списковое включение или генераторное выражение

Поэтому я считаю, что понимать map и filter по-прежнему важно 💖

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Преврати любой сайт в данные, готовые для LLM — всего за пару кликов

Firecrawl выпустил Templates — коллекцию готовых playground-настроек, сниппетов и целых репозиториев для сбора и структурирования данных с сайтов под твои проекты

Доставать веб-данные стало гораздо проще 😎

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM