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

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Media is too big
VIEW IN TELEGRAM
Это находка дня: Code2Tutorial

Он позволяет мгновенно превратить любой репозиторий на GitHub в чистый, интерактивный туториал.

Просто вставь ссылку на репо → получи структурированное обучение 😱

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашёл годный инструмент для анализа безопасности Python-кода

Это CLI-утилита, которая автоматически сканирует исходники на уязвимости

Анализирует:

– небезопасные импорты
– инъекции
– проблемы с сериализацией
– утечки секретов и т.д.

Подходит для CI/CD пайплайнов и ревью кода.

Интеграция простая, работает быстро —> bandit ❤️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
12 мощных инструментов для ваших ИИ-агентов

Вот краткое описание функций каждого из них

1. FileReadTool

Этот инструмент мгновенно извлекает данные из локальной файловой системы.

2. FileWriterTool

Позволяет агенту создавать или перезаписывать любые файлы.

3. CodeInterpreterTool

Мощный инструмент для выполнения кода на Python 3 в защищённой, изолированной среде

4. ScrapeWebsiteTool

Инструмент, предназначенный для извлечения и чтения содержимого указанного веб-сайта.

5. SerperDevTool

Позволяет агенту выполнять поиск в Google.

6. DirectoryReadTool

Позволяет агенту получать список содержимого папок и метаданные. Полезно для реализации RAG на основе файловой системы.

7. FirecrawlSearchTool

Инструмент, предназначенный для поиска по веб-сайтам и преобразования их содержимого в чистый Markdown или структурированные данные, пригодные для обработки агентами или языковыми моделями (LLM).

8. BrowserbaseLoadTool

Browserbase — это платформа для разработчиков, предназначенная для надёжного запуска, управления и мониторинга безголовых браузеров.

Этот инструмент позволяет запускать сессии безголового Chrome, которыми может управлять агент.

9. PDFSearchTool

Семантический RAG (извлечение и генерация с подсказками) по PDF-документам.

10. GithubSearchTool

Предоставляет агентам доступ к GitHub и возможность выполнять RAG по исходному коду.

11. TXTSearchTool

Молниеносное встраивание и поиск по текстовым файлам.

12. L2SQLTool

Инструмент Text2SQL, преобразующий естественный язык в SQL-запросы для поиска по структурированным базам данных.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по чистому коду на Python:

Проверяйте качество кода внутри CI-пайплайна с помощью этих библиотек:

flake8 — контроль соблюдения стиля (PEP8)
black — автоформатирование кода
isort — сортировка и оптимизация импортов
bandit — анализ кода на уязвимости безопасности
safety — проверка зависимостей на известные уязвимости

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
ТОП‑7 расширений для прокачки VSCode, Cursor и Windsurf: 📝

① Console Ninja
Показывает вывод консоли прямо в редакторе

② Error Lens
Выводит ошибки линтера и компиляции прямо в строке кода

③ Image Preview
Показывает превью изображений при наведении курсора

④ REST Client
Позволяет делать HTTP‑запросы и получать ответы прямо в редакторе

⑤ Version Lens
Управление версиями и обновление зависимостей из package.json и не только

⑥ Highlight on Copy
Мерцающая подсветка скопированного текста - видно, что именно ты скопировал

⑦ Symbols
Лучшая подборка иконок для типов файлов - делает интерфейс визуально чище

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Python Portal
uv – это потрясающе! 😮 Вы можете запускать Python-скрипты без необходимости беспокоиться о виртуальном окружении, установке зависимостей или версиях Python! Вот всё, что нужно: 🟢Укажите зависимости в начале файла 🟢Запустите команду: uv run your_script.py…
Вы можете выполнить uv add --script /path/to/script.py, чтобы добавить встроенные зависимости в Python-скрипт. Если заголовок скрипта ещё не существует, uv сгенерирует его автоматически

Команда uv run http://script.py выполнит скрипт со всеми необходимыми зависимостями.
Не нужно создавать виртуальное окружение, устанавливать пакеты и т.д. ☺️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Этот репозиторий на GitHub настоящая находка для каждого дата-сайентиста

DS Interactive Python — это репозиторий с интерактивными дашбордами для изучения статистики, моделей машинного обучения и других концепций Data Science.

Темы включают: PCA, бэггинг и бустинг, кластеризацию, нейронные сети и др.

Полностью open-source и бесплатен 😮

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python:

Используйте команду poetry show --tree --why [package], чтобы отследить, откуда берётся пакет.

Она быстро показывает:

> какие пакеты от него зависят
> почему пакет был установлен

На примере показано, как команда

poetry show --tree --why pydantic


помогает понять, почему библиотека pydantic присутствует в проекте и кто её тянет в зависимости.

Это очень полезно перед очисткой pyproject.toml или при разрешении конфликтов транзитивных зависимостей. 📝

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Основатель школы автотестировщиков QA.GURU проводит бесплатный интенсив «Из баг-репортов до первого автотеста на Python»

🔜 Во вторник, 24 июня, в 12:00 по МСК. Бесплатно.

Вы начинающий автоматизатор или ручной тестировщик? Займите место сейчас

За несколько часов опытный инженер объяснит, как написать и запустить автотест 🤓

Что сделаете за занятие:

— Напишете свой автотест на Python с нуля.
— Настроите рабочую среду за 10 минут (и она реально будет работать).
— Разберётесь, когда использовать Selenium, Playwright или Selene.
— Запустите автотест с Pytest и без него.

И совсем немного о трендах QA:

— Зачем компаниям QA, которые умеют писать код.
— Python + автотесты как минимальный входной билет в индустрию.
— Нейросети: конкурент или ассистент?

Станислав Васенков, основатель школы — в прошлом — Head of QAA pflb.ru, автор allure-notifications, победитель хакатона от EPAM, спикер Heisenbug.

Занять место

Реклама. Рекламодатель: ИП Васенков Станислав Олегович, ИНН 774335827403, erid: 2Vtzqw51r9U
Please open Telegram to view this post
VIEW IN TELEGRAM
Если хочешь стать скилловым бэкенд-разработчиком, то пили как можно больше проектов.

В этом курсе их три: генератор блогов, клон Netflix и клон Spotify.

Прокачаешь бэкенд на практике с Python, Django и PostgreSQL 😄

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Возможность Python, которую часто недооценивают -> операции над множествами

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

Очистка и приведение к множествам:

existing = {t for tag in old_tags if (t := tag.strip())}
incoming = {t for tag in new_tags if (t := tag.strip())}


🔸tag.strip() удаляет пробелы с начала и конца строки.

🔸t := tag.strip() сохраняет очищенное значение в переменную t.

🔸if (t := tag.strip()) фильтрует пустые строки ("").

Удаление существующих тегов:

updated = existing - incoming
print("Removed tags:", updated)


Добавление новых тегов (без дубликатов):

updated = existing | incoming
print("Added tags:", updated)


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Если хочешь вкатиться в ML, а не просто читать теорию, начинай с практики прямо в браузере.

В этом курсе всё: туториалы, Colab-ноутбуки и реальные примеры.

Будешь тренировать модели на Python с TensorFlow, визуализировать в TensorBoard и деплоить хоть в браузер, хоть на сервер.

Подходит и для новичков, и для тех, кто уже пробовал Keras или NumPy 😊

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Конструкции в Python, использующие блок else:

🔸Условный оператор if-else

🔸Цикл for-else

🔸Цикл while-else

🔸Блок try-except-else

На фото мы видим 4 примера:

1. проверяет условие. Если x < 5 — выполняется if, иначе — else

2. Цикл ищет i == 10. Не находит, break не срабатывает → выполняется else

> Блок else выполняется только если цикл не прерван через break

3. Цикл отрабатывает до конца, else выполняется после завершения while

> else не выполнится, если внутри цикла будет break

4. Пытается выполнить 10 / 2. Исключения нет — срабатывает else

> else выполняется только если не было исключений в try

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на библиотеку art — делает ASCII-арт из текста за секунды.

Простая установка:

pip install art


Пример использования:

from art import text2art

Art = text2art("art") # шрифт по умолчанию
print(Art)

# Пример вывода:
# _
# __ _ _ __ | |_
# / _` || '__|| __|
# | (_| || | | |_
# \__,_||_| \__|

Art_block = text2art("art", font='block', chr_ignore=True)
print(Art_block)

# Выведет крупный блок‑текст


Идеально для приветственных страничек или добавить декоративный вывод в CLI или логах 😊

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Аналогично Unix-пайпам, в Python можно строить цепочки функций, переопределяя метод __or__

Это позволяет связывать операции так, что вывод одной функции становится входом для следующей → чисто, читаемо и удобно для композиции

Именно так LangChain реализует элегантные пайплайны вроде: chat_prompt | groq_model | output_parser

Пример:

class Pipe:
def __init__(self, func):
self.func = func

def __call__(self, x):
return self.func(x)

def __or__(self, other):
return self.__class__(lambda x: other(self(x)))


🔸Pipe — обёртка над функцией

🔸__or__ (|) позволяет комбинировать пайпами, как в Unix

🔸__call__ делает объект вызываемым, как обычную функцию

Теперь можно обернуть любые функции в Pipe и комбинировать их в цепочку:

double = Pipe(lambda x: x * 2)
square = Pipe(lambda x: x ** 2)

pipeline = double | square
print(pipeline(3)) # (3 * 2) ** 2 = 36


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

Firecrawl только что выкатили Firestarter — полноценную платформу для чат-ботов, которая:

🔸Скрейлит твой сайт
🔸Индексирует контент
🔸Разворачивает чат-интерфейс с поддержкой RAG и API в стиле OpenAI

Полностью open-source - ccылка

Попробуйте: ссылка

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Pytest:

Используйте пользовательские маркеры pytest, чтобы добавлять метаданные к тестам.

Это упрощает организацию и запуск определённых групп тестов

В примере на изображении используются два пользовательских маркера:

🔹@pytest.mark.performance

– Применён к тесту для замера производительности test_page_load_time

🔹@pytest.mark.database

– Применён к тестам для работы с базой данных test_database_connection и test_data_integrity

Мы можем запускать выборочно, например тесты, помеченные маркером @pytest.mark.database

pytest -m database  


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Я только сегодня узнал об этом трюке с GitHub

Просто введите repo.new в адресной строке браузера — и сразу откроется страница создания нового репозитория на GitHub.

Такой простой способ сэкономить время 🤯

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python: deque.maxlen

Знаете ли вы, что можно задать максимальную длину списка, используя deque из модуля collections?

Класс deque (двусторонняя очередь) из модуля collections поддерживает параметр maxlen, который устанавливает максимальный размер очереди. Когда очередь достигает этого размера, добавление новых элементов автоматически удаляет элементы с противоположного конца, реализуя поведение "первым пришёл — первым ушёл" (FIFO) с ограничением по размеру.

В приведённом примере deque имеет максимальную длину 3. При добавлении значения 4 удаляется 1, что делает такую структуру идеальной для реализации скользящего окна последних трёх элементов 📖

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