ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

Python Community | Chat

снимок за июль 2025
‹ июль 2025 ›×
I
Видео
d00e3a98dbaf66260ba68c8082e6c222_452337_1752493002.mp4 · 220 КБ · нажмите — покажем
🛠 Вышел новый генератор CAD‑моделей по чертежам — и он реально работает! GenCAD умеет превращать чертежи в 3D‑модели и сразу генерирует параметрический CAD‑код. Для сложных и детализированных объектов он пока не подойдет, но с простыми деталями вроде винтиков и креплений справляется отлично. 📎 Идеально для быстрого прототипирования стандартных элементов. 📄 Paper: https://openreview.net/pdf?id=e817c1wEZ6 🔗 Website: https://gencad.github.io 💻 Code: https://github.com/ferdous-alam/GenCAD @Python_Community_ru
905 ·
I
Фотография
нажмите — покажем
📊 OpenBB (https://github.com/OpenBB-finance/OpenBB#) — это платформа для инвестиционных исследований, предоставляющая доступ к акциям, опционам, криптовалютам, форексу и макроэкономическим данным. Платформа ориентирована на пользователей всех уровней и включает в себя как командную строку, так и графический интерфейс. 🌟 OpenBB предлагает бесплатный и открытый доступ к аналитическим инструментам и может быть расширен через различные плагины. Проект также поддерживает автоматизацию процессов и интеграцию с внешними сервисами 🔥 Инструмент является бесплатным аналогом Bloomberg terminal (подписка на который стоит $20 тыс. в год!) 👩‍💻 Язык: Python 🔐 Лицензия: GNU ▪ Github (https://github.com/OpenBB-finance/OpenBB#) @Python_Community_ru
810 ·
I
Видео
9f633b40023617310847c6a288e65b7f_452337_1752686833.mp4 · 946 КБ · нажмите — покажем
🐍 Хитрый совет по Python: как ускорить in в 1000 раз Когда ты проверяешь, есть ли элемент в списке, Python делает это медленно — он пробегает по списку полностью. А если ты проверяешь элемент в множестве (set), это работает в сотни раз быстрее. 📌 Пример: data = [1, 2, 3, ..., 1000000] # большой список queries = [42, 9999, 123456] # Медленно: for q in queries: if q in data: print(q) 🔁 Каждый q in data проходит весь список → медленно. ✅ Правильный способ: Преобразуй список в set один раз — и все станет быстро: data_set = set(data) for q in queries: if q in data_set: print(q) 💡 Проверка in в set работает мгновенно (как в словаре). Такой трюк особенно полезен, если: -у тебя много данных -ты делаешь много проверок на вхождение 📌 Запомни: if x in список: — медленно Лучше: if x in set(список): — быстро! @Python_Community_ru
900 ·
I
Фотография
нажмите — покажем
💡 STUMPY — библиотека для анализа временных рядов. Этот проект предлагает мощный инструмент для работы с временными последовательностями через вычисление matrix profile — специальной метрики, которая автоматически находит схожие паттерны в данных. Инструмент поддерживает распределённые вычисления через Dask и GPU-ускорение через Numba. Технология особенно полезна для обнаружения аномалий, повторяющихся фрагментов и семантической сегментации. Библиотека одинаково хорошо работает как на небольших наборах данных, так и на временных рядах длиной в миллионы точек. 🤖 GitHub (https://github.com/stumpy-dev/stumpy) @Python_Community_ru
913 ·
I
Фотография
нажмите — покажем
👩‍💻 MegaParse (https://github.com/QuivrHQ/MegaParse) — высокопроизводительный парсер, который способен преобразовывать всевозможные типы документов (Word документы, PDF-файлы или даже презентации PowerPoint)! 🌟 Его основная цель — преобразовывать информацию из документов в текст для LLM, при этом минимизируя различные потери данных. 🔐 Лицензия: Apache-2.0 🖥 Github (https://github.com/QuivrHQ/MegaParse) @Python_Community_ru
903 ·
I
Ссылка
нажмите — покажем
‍🖥 Что выведет код ниже? def append_to_list(val, my_list=[]): my_list.append(val) return my_list print(append_to_list(1)) print(append_to_list(2)) print(append_to_list(3)) 🤯 Подвох Многие думают, что каждый вызов append_to_list() создаёт новый список, и ожидают вывод: [1] [2] [3] Но на самом деле Python выведет: [1] [1, 2] [1, 2, 3] 🧠 Почему так происходит? В Python значения аргументов по умолчанию вычисляются один раз — при определении функции, а не при каждом вызове. Значение my_list=[] создаётся один раз и сохраняется между вызовами. Это работает как статическая переменная внутри функции. ✅ Как это исправить? Используй None как значение по умолчанию: def append_to_list(val, my_list=None): if my_list is None: my_list = [] my_list.append(val) return my_list print(append_to_list(1)) # [1] print(append_to_list(2)) # [2] print(append_to_list(3)) # [3] 💡 Вывод Не используйте изменяемые объекты (например, list, dict, set) как значения по умолчанию для аргументов функций в Python. @Python_Community_ru
848 ·
I
Фотография
нажмите — покажем
🐍 dlt — библиотека для загрузки данных на Python. Этот open-source инструмент упрощает работу с данными — от простых скриптов до сложных ETL-пайплайнов. Автоматически определяет структуру данных и адаптируется под разные источники и хранилища. Проект удобен для быстрого прототипирования: можно начать в Colab-ноутбуке, а затем масштабировать до production-решения. Поддерживает инкрементальную загрузку и интеграцию с Airflow. 🤖 GitHub (https://github.com/dlt-hub/dlt) @Python_Community_ru
832 ·
I
Видео
c5029b4c14be30950ea8f1a94a3ba92a_452337_1753203908.mp4 · 976 КБ · нажмите — покажем
825 ·
I
Фотография
нажмите — покажем
🐧 Pynguin — генератор юнит-тестов для Python. Инструмент автоматически создаёт тесты для Python-кода, экономя время разработчиков и при этом адаптирован под особенности динамической типизации Python. Проект пока находится в стадии исследования и требует осторожности — он исполняет тестируемый код, поэтому разработчики рекомендуют использовать изолированные среды вроде Docker. Установка через pip install pynguin, минимальная конфигурация требует указания пути к проекту и модулям для тестирования. 🤖 GitHub (https://github.com/se2p/pynguin) @Python_Community_ru
851 ·
Ссылка
нажмите — покажем
🐍 Python Gotcha: как правильно логировать необработанные исключения В этой статье разбирают частую проблему: программа падает, но в логах — тишина. Необработанные исключения отправляются в stderr, а не в лог-файл, и вы не знаете, что пошло не так. Пример кода: import logging logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) handler = logging.FileHandler("app.log") handler.setFormatter(logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")) logger.addHandler(handler) def divide(a, b): return a / b def main(): logger.info("Start") logger.info(divide(10, 0)) # ZeroDivisionError logger.info("End") if __name__ == "__main__": main() 📄 В логе: 2025-07-24 12:00:00 __main__ INFO Start ❗ А сам ZeroDivisionError — только в консоли. Лог молчит. ✅ Решение — использовать sys.excepthook: import sys def handle_uncaught_exception(exc_type, exc_value, exc_traceback): logger.critical("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback)) sys.excepthook = handle_uncaught_exception Теперь, если произойдёт ошибка, она попадёт в лог: CRITICAL Uncaught exception Traceback (most recent call last): ... ZeroDivisionError: division by zero 📌 Вывод: — Необработанные исключения не попадут в лог, если явно не подключить sys.excepthook — Это особенно важно в продакшене: лог покажет, где и почему всё сломалось — Просто и надёжно 🔗 Подробнее (https://andrewwegner.com/python-gotcha-logging-uncaught-exception.html) @Python_Community_ru
780 ·
I
Фотография
нажмите — покажем
Фотография
нажмите — покажем
Фотография
нажмите — покажем
Фотография
нажмите — покажем
Фотография
нажмите — покажем
1.1K ·
I
Видео
f0ae7642c4a0971fbe9d8811dfa07d33_452337_1753527038.mp4 · 3.2 МБ · нажмите — покажем
🧹 ObjectClear — инструмент для удаления объектов с изображений с помощью ИИ Что умеет: 🖼 Загружаешь изображение 🎯 Выделяешь объект, который хочешь убрать ✨ Модель автоматически удаляет его и восстанавливает фон Под капотом: — Segment Anything (SAM) от Meta для выделения объекта — Inpaint-Anything для генерации фона — Поддержка работы в браузере (Gradio UI) Можно запускать локально. Всё open-source. 📎 GitHub: https://github.com/zjx0101/ObjectClear @Python_Community_ru
807 ·
I
Фотография
нажмите — покажем
🔥 Нашёл 100% open-source AI-агента для задач в разработке ПО! ByteDance выпустили Trae Agent — LLM-агент для автоматизации задач в области программной инженерии. ✅ Планирование и использование инструментов из коробки ✅ Умеет рефакторить, дебажить, разбираться в коде ✅ Полностью автономный ✅ Абсолютно открытый код Отличная база, если вы строите что-то с AI. git clone https://github.com/bytedance/trae-agent.git cd trae-agent uv venv uv sync --all-extras https://github.com/bytedance/trae-agent @Python_Community_ru
818 ·
🖥 Контекстный перехват stdout — как легко отключить или сохранить print 💡 Хотите, чтобы print() не мешал логике и при этом легко отключался или сохранялся в файл? Вместо того чтобы комментировать все print() в проде, подмените стандартный вывод через контекстный менеджер — и легко направляйте вывод в файл, /dev/null или даже буфер для последующей обработки. Это особенно полезно при отладке в прод-среде или при генерации логов без сторонних библиотек. import sys from contextlib import contextmanager from io import StringIO import os @contextmanager def capture_stdout(to_file=None, suppress=False): original_stdout = sys.stdout try: if suppress: sys.stdout = open(os.devnull, 'w') elif to_file: sys.stdout = open(to_file, 'w') else: buffer = StringIO() sys.stdout = buffer yield sys.stdout finally: sys.stdout.close() if sys.stdout not in (original_stdout, sys.__stdout__) else None sys.stdout = original_stdout # Пример использования: with capture_stdout(suppress=True): print("Этого вы не увидите") with capture_stdout(to_file="output.log"): print("А это уйдёт в файл") with capture_stdout() as captured: print("Это записано во внутренний буфер") print("Буфер содержит:", captured.getvalue().strip()) @Python_Community_ru
761 ·
Видео
1f4a50d4cbdaf00ef8266af31fb4397e_452337_1753720867.mp4 · 3.4 МБ · нажмите — покажем
🌐 BrowserOS — операционная система внутри браузера на базе AI BrowserOS — это экспериментальный проект, превращающий браузер в полноценную AI‑среду с "живущими" агентами. По сути, это OS-слой внутри вкладки браузера, где ИИ-агенты могут взаимодействовать с интерфейсами как пользователи. 🧠 Основные идеи: — Агент может кликать, печатать, читать и взаимодействовать с окнами внутри браузера — Поддержка многозадачности: можно открыть несколько окон, как в реальной ОС — Простое API для создания интерфейсов и запуска ИИ-агентов — Можно подключать LLM и наделять их возможностью выполнять действия 📦 Особенности: — UI построен на React — Использует WebAssembly и Web Workers — Позволяет тестировать и запускать агента в контролируемой "песочнице" 💡 Подходит для: — Исследований в области AI-агентов — Прототипирования мультимодальных систем — Демонстрации взаимодействия LLM с интерфейсами 🔗 GitHub (https://github.com/browseros-ai/BrowserOS) @Python_Community_ru
821 ·
I
Видео
3a8eef747fb12d376018a8291e582e3a_452337_1753742452.mp4 · 642 КБ · нажмите — покажем
🖥 Хочешь узнать, какие библиотеки в твоём Python‑проекте реально используются? Многие проекты тянут за собой ненужные зависимости, особенно после десятков итераций. С помощью vulture ты можешь найти неиспользуемый код и импорты — и легко вычистить проект от мусора. Установка vulture pip install vulture Поиск неиспользуемого кода и импортов vulture your_project/ > unused.txt Пример: посмотреть, что не используется cat unused.txt @Python_Community_ru
806 ·
Фотография
нажмите — покажем
🔥 WaterCrawl — продвинутая платформа для веб-краулинга и подготовки данных под LLM Если нужно собрать и структурировать контент с сайтов для ИИ — это мощный инструмент. 🧠 В основе: — Django + Scrapy + Celery — Асинхронный краулинг, API и UI — Скриншоты, PDF, JS-рендер, SSE 🚀 Возможности: — Быстрый запуск через Docker (`docker compose up`) — Интеграции с Dify, n8n, Langflow — Пакетная отправка запросов через REST API — SDK для Python, Go, Node, PHP ⚙️ Репозитории (https://github.com/watercrawl/WaterCrawl) @Python_Community_ru
866 ·
I
Фотография
нажмите — покажем
🆕 В pyfonts — мощное обновление! Теперь можно задать глобальный шрифт по умолчанию — и он применится ко всем текстам автоматически. Больше не нужно вручную проставлять font в каждом элементе 🎯 Идеально для проектов с единой визуальной стилистикой — экономит кучу времени и кода. 🔥 Фичу реализовал John Gardner — спасибо! Ждём фидбек, звёзды и предложения ✨ 📦 GitHub: http://github.com/JosephBARBIERDARNAL/pyfonts @Python_Community_ru
873 ·
I
Фотография
нажмите — покажем
Чтобы получить все уникальные пары элементов из списка, вовсе не обязательно писать громоздкие вложенные циклы. Python предоставляет модуль itertools, который содержит готовые инструменты для таких задач. Например, для списка features = ['price', 'size', 'rating'] можно написать так: from itertools import combinations pairs = list(combinations(features, 2)) print(pairs) # [('price', 'size'), ('price', 'rating'), ('size', 'rating')] Функция combinations берёт на вход итерируемый объект и размер комбинации. В нашем случае размер равен 2, поэтому мы получаем все возможные неупорядоченные пары без повторов. Это решение не только короче, но и легче читается. Пользуйтесь библиотекой itertools, чтобы избавляться от рутины и писать более чистый код! @Python_Community_ru
872 ·
Ссылка
нажмите — покажем
‍🖥 Transfunctions — библиотека транзакционных функций на Python Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения. Что такое транзакционные функции? Это функции, которые: • имеют чёткое начало и откат (rollback) — как в базах данных • могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия • обрабатывают ошибки и контекст централизованно • позволяют писать бизнес-логику без дублирования и хаоса Что умеет Transfunctions: • Объединение функций в контролируемые пайплайны • Поддержка отката и логирования • Контекстное выполнение (например, сессии, транзакции, данные) • Минимум шаблонного кода Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами. pip install transfunctions 🔗 GitHub: https://github.com/pomponchik/transfunctions #python #pipeline #transactions #opensource #architecture @Python_Community_ru
791 ·
I
Фотография
нажмите — покажем
⚡️ Ускорь проверку качества кода в 10 раз с помощью pre-commit! В серьезных проектах чистота и стиль кода — но ручные проверки отнимают кучу времени, которое лучше потратить на анализ данных. 💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом. 😬 Без pre-commit: Вы коммитите код — всё выглядит нормально. Но потом на ревью находят кучу мелочей: ✖️ Нет type hints ✖️ Форматирование пляшет ✖️ Отсутствует docstring ✖️ Импорты в разнобой 🤖 С pre-commit всё иначе: Перед коммитом автоматически запускается ruff format и ruff check: ✅ Код отформатирован ✅ Стиль и правила соблюдены ✅ Меньше замечаний на ревью 💡 Один раз настроил — и больше не паришься с форматированием вручную. Идеально для любого Python-проекта. @Python_Community_ru
788 ·
Календарь: июль 2025
Архив по месяцам
Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог