Python Portal
56.1K subscribers
2.19K photos
249 videos
51 files
712 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
На GitHub вышел новый бесплатный Git-клиент

Многие новички, начав пользоваться Git для управления кодом, быстро устают от кучи сложных команд в консоли. А хорошие визуальные клиенты, где всё можно делать мышкой, обычно платные и это раздражает. 😡

Недавно на GitHub появилась полностью бесплатная и открытая альтернатива. Открытый, без ограничений и с удобным интерфейсом. Поддерживает всё: коммиты, пуши, мерджи, ребейзы, работу с ветками, подмодулями и даже сравнение изображений.

Доступен для Windows, macOS и Linux (Flatpak).

github.com/JetpackDuba/Gitnuro

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2713💊6😁2🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Мгновенная визуализация геоданных из командной строки

Теперь можно интерактивно смотреть растры и векторные слои без запуска настольного GIS или Jupyter.

Просто выполните:

pip install "leafmap[viewer]"


А потом визуализируйте данные одной командой:

view-raster /path/to/raster.tif
view-vector /path/to/vector.geojson


Нужна настройка отображения:

view-raster /path/to/raster.tif --band 1 --colormap coolwarm
view-vector /path/to/vector.geojson --style liberty


Эти CLI-утилиты работают на базе Leafmap, MapLibre и LocalTileserver и поддерживают все форматы, совместимые с rasterio и geopandas.

Смотрите тут: https://github.com/opengeos/leafmap

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Вот она сила YOLO: обучена на ноутбуке примерно за час, на датасете с Kaggle.

И всё это примерно 100 строк Python-кода.

С таким проектом можно хоть стартап запускать, а ушло всего пару часов.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6314🤣10
This media is not supported in your browser
VIEW IN TELEGRAM
Собери человекоподобного робота сам 🪚

OpenArm — это open-source гуманоидный робот.

В комплекте есть полный CAD, код управления, прошивка и инструменты для симуляции = всё, что нужно, чтобы собрать, модифицировать и запускать его.

Руки сделаны комплаентными и бэкдрайвимыми. Поддерживается телеуправление с обратной связью по усилию и компенсацией гравитации в реальном времени, чтобы оператор мог естественно вести руку.

Очень важно: в части симуляции OpenArm работает с платформами вроде MuJoCo и Isaac Sim, что позволяет разработчикам тестировать политики в виртуальной среде перед запуском на железе.

Собирайте сами из набора или берите предсобранный, цель проекта = доступность для исследовательских лабораторий, небольших команд и энтузиастов. 🌠

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥184👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Как рождаются многостраничные регламенты и политики

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁784
This media is not supported in your browser
VIEW IN TELEGRAM
Наконец-то в Python 3.14 можно отключить GIL

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

А теперь Python может выполнять твой многопоточный код параллельно.

И uv это полностью поддерживает

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍59🔥1911
Фраза «Мы не храним ваш пароль» - не маркетинговая болтовня. Это правда.

Компании хранят хэши паролей, а не сами пароли.

Как работает хэширование:
› Односторонний процесс (обратного пути нет)
› Один и тот же ввод = один и тот же вывод
› Разный ввод = разный вывод

from hashlib import sha256

# всегда будет один и тот же результат для "mySecret123"
saved_password = sha256(
"mySecret123".encode()
).hexdigest()

# Нельзя вернуть исходный пароль "mySecret123"
# Но можно захэшировать ввод и сравнить
password = sha256(
input("Введите пароль: ").encode()
).hexdigest()

if password == saved_password:
print("Добро пожаловать!")
else:
print("Доступ запрещён!")


Так можно проверить пароль, но нельзя его восстановить.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍46🔥128
Если тебе когда-нибудь покажется, что ты крутой программист, вспомни, что один чувак написал Roller Coaster Tycoon целиком на ассемблере, в одиночку.

И заработал на этом 30 миллионов долларов роялти.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁77👍33🤯1312🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Джун, который уже второй день воюет с единственным багом, что я ему поручил 😅

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😢50😁14👀4
Ни одно Python-сообщество раньше не принимало новый инструмент так быстро, как uv. 👀

Скорее всего, uv это лучший инструмент для Python за последние несколько лет.

Если ты им ещё не пользуешься, отложи всё и посмотри, что это такое.

А если уже пользуешься => глянь на прикреплённый читщит, там есть полезные штуки.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1410👍2
Нужно поймать и IndexError, и KeyError?

Просто используй их общего родителя — LookupError

try:
db_host = config['db'][0]['hosts'][0][0]
except LookupError: # ловит оба варианта
db_host = 'localhost'


LookupError базовый класс для ошибок, связанных с поиском по ключу или индексу (включая KeyError и IndexError), так что этот трюк аккуратно покрывает оба случая.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍225
Вышел PyTorch 2.9, обновление с упором на производительность, переносимость и удобство для разработчиков

Свежая версия приносит стабильный libtorch ABI для C++/CUDA-расширений, симметричную память для multi-GPU ядер, расширенную поддержку wheel-пакетов под ROCm, XPU и CUDA 13, а также улучшения для платформ Intel, Arm и x86.

В релизе — 3216 коммитов от 452 контрибьюторов, и PyTorch 2.9 продолжает развивать экосистему open source AI по всему миру.

Полный разбор: https://hubs.la/Q03NNKqW0

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥209
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣606😁6🏆4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Мертвый интернет - больше не просто теория

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯5111👀10
This media is not supported in your browser
VIEW IN TELEGRAM
Многие зевают на теме косинуса, думая, что это скучная тригонометрия.

Но на деле именно косинус лежит в основе того, как работают векторные базы данных.

Короткий разбор — byhand.ai/vecdb

Косинус это угол между векторами.
Cosine similarity способ сравнивать эмбеддинги.
Векторная база ищет наиболее релевантный кусок, измеряя, какие векторы направлены одинаково.

Вот она, та самая математика, на которой держатся поиск, RAG и агенты.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍10🤔5💊1
Принес годноту: свежие доклады по аналитике

Чуть контекста:
20 сентября в Москве прошла Data Driven - ежегодная конфа для аналитиков от Поиска и Рекламных технологий Яндекса.


Вот пара докладов, что особенно мне откликнулись:

- End-to-end качество Алисы как универсального AI-ассистента / Мария Акопян. Как измерить «качество» виртуального ассистента, который живёт в колонках, чатах и приложениях? Мария рассказала, как команда переосмыслила оффлайн-оценку Алисы, научилась собирать сложные срезы пользовательских сессий и перешла на гибридную разметку с помощью LLM. Получился доклад про то, как метрики превращаются в реальные улучшения поведения ИИ.

- Дашборд как средство коммуникации разработчика с пользователем / Владимир Дмитриев. 10 000 дашбордов за три месяца - и всё равно пользователи не находят нужные данные. Владимир объяснил, почему дашборд, это не просто визуализация, а инструмент общения аналитика с командой. И как сделать так, чтобы данные реально помогали, а не лежали красивыми графиками в BI

Забирайте под горячий кофе ☕️

Все доклады можно посмотреть на сайте. Или здесь:
- Трек "Data to Insights": YT | VK
- Трек "Data to Artifacts": YT | VK

Реклама. ООО "Яндекс". ИНН 7736207543
Please open Telegram to view this post
VIEW IN TELEGRAM
9🌭1
Роадмап по AI Engineering, которому реально могут следовать новички. Всё построено на 100% бесплатных, опенсорс и комьюнити-ресурсах

Все ресурсы можно найти здесь: GitHub

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
28👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Не программируй больше в одиночку в VS Code. Это расширение добавит питомцев прямо в твой редактор

Забираем здесь. GitHub тут

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
64🔥15😁7💊1
Всё просто

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11418🔥10👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Чёрт, не верится, что этот инструмент бесплатный и с открытым исходником 🤯

Идеальный конвертер файлов: без ограничений по размеру, без рекламы и полностью open source.

- Конвертирует изображения, видео, документы и многое другое
- Быстрый и простой в использовании
- Поддерживает кучу форматов
- Без регистрации и прочей ерунды

Обязательная штука для разработчиков, дизайнеров, контент-мейкеров, короче, для всех, кто работает с файлами :)

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥11🏆62
Совет по Python:

Кортежи - неизменяемые, то есть их нельзя менять.
Точнее говоря, сам кортеж - его длина и ссылки на объекты не могут изменяться.

Но если внутри кортежа лежит ссылка на изменяемый объект, этот объект можно менять.

>>> a = (10, ["S","u","m","m","e" ,"r"], "abc")

>>> a[1] = ["S","u","m","m","e" ,"r", "Mode"]
TypeError: 'tuple' object does not support item assignment

>>> a[1].append("Mode")
>>> a
(10, ['S', 'u', 'm', 'm', 'e', 'r', 'Mode'], 'abc')


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