TGViewer
Channel Public Channel
Python Portal

Python Portal

@pythonportal

Всё самое интересное из мира Python

Сотрудничество, реклама: @devmangx

Работаем с @Spiral_Yuri

РКН: https://clck.ru/3GMMF6
Subscribers
50.1K
Photos
2.9K
Videos
488
Links
1.3K

Showing posts older than #5087 · Back to latest

Older Posts 18 shown
Post #5085 9.89K
Нашли утилиту, которая заставляет клавиатуру звучать как настоящая печатная машинка

А еще на нажатие можно установить кряканье, барабаны, молнию и свои звуковые эффекты. Это бесплатно и совместимо с Linux, Windows и macOS.

варианты пресетов:
• классическая машинка
• альтернативная, попроще
• рандомные ноты, как музыкальная шкатулка
• кря-кря 🦆
• ту-дум, тсс, чя! 🥁

https://github.com/orhun/daktilo

👉 @PythonPortal
  • 😁 26
  • 🤝 5
  • 👀 2
  • ❤ 1
Post #5084 8.09K
«Это же Python.. что ни сделай - всё в итоге аллоцируется».


Насколько это правда?

Разработчик внёс правку в CPython, чтобы логировались все аллокации объектов int. Затем запустил простой цикл сложения чисел 100 тысяч раз. В терминал прилетело 101006 сообщений.

Почему так много?

Во внутренних механизмах CPython каждое целое число представлено объектом PyLongObject в куче. И маленькие тоже.

Большинство VM используют tagged pointers, чтобы обойтись без лишних аллокаций. Даже Smalltalk в 80-х уже умел это. Python же идёт по тяжёлому пути: каждая аллокация тормозит работу, а редкий случай больших чисел ухудшает производительность самого частого кейса — простых интов.

Допущение: в тесте использовался print, который тоже может порождать новые ints. Разработчик убрал print. Количество аллокаций резко снизилось.

Куда делись остальные ~100k?

Смотрим функцию сложения ints. Если оба операнда меньше 2^30, их значения просто достаются и складываются напрямую. Тип stwodigits так и называется потому, что PyLongObject хранит число в основании 2^30 - каждый элемент массива хранит такой разряд.

Дальше вызывается _PyLong_FromSTwoDigits. В зависимости от величины числа - три пути.

Для маленьких чисел есть оптимизация: готовый статический массив маленьких PyLongObject, без аллокаций в куче. Просто возвращается указатель.

Для средних значений подключается другая функция. И вот что важно:

long_alloc тут не используется

Сначала пытается взять объект из freelist

Если нет свободных = создаёт новый

Freelist - типичная техника для переиспользования освобождённых объектов, чтобы лишний раз не трогать аллокатор.

В long_dealloc объект аккуратно возвращается в этот список.

Разработчик перенёс отладочный вывод в _PyLong_FromMedium: стало видно, что приличная часть объектов переиспользуется.

Но даже так накладные расходы огромные. На уровне процессора сложение двух int - одна инструкция ADD, исполняемая за один такт. В Python же вокруг неё целый аттракцион.

Плюс заметно отсутствие довольно старых оптимизаций, известных индустрии десятки лет.

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

И именно такие вещи делают языки вроде Zig привлекательными для разработчиков.

Подробнее с кодом: тык

👉 @PythonPortal
  • 😁 6
  • 🔥 1
  • 🤔 1
Post #5082 8.43K
Как вам такое

👉 @PythonPortal
  • 😁 85
  • ❤ 12
  • 👍 5
  • 🤣 5
  • 🤔 3
  • 🔥 2
Post #5081 10K
Deepnote уходит в open source и серьезно наезжает на Jupyter. Платформа предлагает мощный kernel с полной обратной совместимостью, но заметно более современный опыт работы с ноутбуками. Это все тот же формат для исследований данных и быстрой аналитики, только с нормальными версиями, комментариями, ревью и красивыми диффами.

В одном workspace могут спокойно работать и дата-инженеры, и менеджеры. Можно писать на Python, SQL или R, подключать сотни источников данных и даже собирать логику из no-code блоков вместе с AI-агентом. Поддерживается работа через VS Code, Cursor, Windsurf и JupyterLab. Интерфейс свежий, не из прошлого десятилетия. И да, .ipynb полностью гоняется туда-обратно.

Если Jupyter и дальше будет стоять на месте, Deepnote может занять его место уже в ближайшие годы. 👀

👉 @PythonPortal
  • ❤ 17
  • 🤯 7
  • 👍 5
Post #5080 9.33K
12 Python-библиотек для бесплатных рыночных данных, которые стоит знать каждому:

🔸yfinance
Данные по акциям: история, внутридневные котировки, фундаменталка. Плюс FX, крипта и опционы. Юзает Yahoo Finance, так что все данные оттуда доступны через yfinance.

🔸pandas-datareader
Раньше был частью pandas, теперь отдельный проект. Данные по акциям, валютам, экономическим индикаторам, факторам Фама-Френча и много чего еще.
Документация: https://pandas-datareader.readthedocs.io/en/latest/

🔸IBApi
Официальный API Interactive Brokers с доступом ко всем их данным. Пришел на замену IBPy.
Документация: https://interactivebrokers.github.io/tws-api/

🔸Alpha Vantage
Бесплатный API с реальными котировками и популярными финансовыми индикаторами. Формат JSON или CSV.

🔸Nasdaq Data Link (бывший Quandl)
Миллионы финансовых и экономических датасетов от сотен источников прямо в Python.

🔸Twelve Data
Доступ к 100000+ тикеров по акциям, форексу, индексам и фундаментальным данным со всего мира.

🔸Polygon.io
Реальные и исторические данные по акциям, валютам и криптовалютам.

🔸Tradier
Python-библиотеки для работы с Tradier API.

🔸alpaca-py
Все, что угодно: от стриминга рыночных данных до разработки своих инвест-приложений.

🔸Finnhub
Реалтайм REST API и вебсокеты для акций, валют и крипты.

🔸marketstack
Внутридневные и исторические данные за 30+ лет, 170000+ тикеров.
Документация: https://marketstack.com/documentation

🔸Tiingo
API с котировками на конец дня. Ставка на надежность, прозрачность и полноту.
Документация: https://api.tiingo.com/documentation/general/overview


👉 @PythonPortal
  • 🔥 19
  • 👍 8
  • ❤ 6
Post #5079 8.64K
Фишка на GitHub! Добавь 0 в URL Pull Request, и ИИ поможет тебе разобрать и понять изменения, которые хотят влить.

Бесплатно. Смотри , как это работает

👉 @PythonPortal
  • ❤ 15
  • 👍 6
  • 💊 3
Post #5077 8.04K
Преподаватель показал, как метод Монте-Карло помогает по-настоящему разбираться в данных. Он собрал интерактивный дашборд на Python с использованием Matplotlib, чтобы студенты могли сами моделировать неопределённость в оценке запасов лития. 🌟

👉 @PythonPortal
  • 👍 21
  • ❤ 4
  • 🤔 4
  • 😁 1
Post #5076 8.69K
Как остановить хакерскую атаку:

👉 @PythonPortal
  • 🤣 100
  • ❤ 11
  • 🤯 6
  • 😁 2
  • 🔥 1
  • 😢 1
  • 👀 1
Post #5075 7.68K
Python совет:

itertools.dropwhile пропускает элементы итерируемого объекта, пока условие возвращает True, а затем отдаёт все последующие элементы, начиная с первого, для которого условие стало False.

Итератор dropwhile не вернет ни одного элемента, пока предикат хотя бы раз не даст False.

Пример👇

>>> import itertools
>>> purchase_price = 99.00
>>> daily_prices = [95, 97, 94, 96, 100, 102, 99]
>>> prices_after_gain = list(itertools.dropwhile(lambda price: price <= purchase_price, daily_prices))
prices_after_gain
[100, 102, 99]


👉 @PythonPortal
  • 👍 10
  • ❤ 6
  • 🤔 3
Post #5074 8.52K
Datalab выкатывает Chandra

Среди open-source OCR внезапно появился новый чемпион. Модель Chandra от команды Datalab залетела на независимые бенчмарки и обошла прежнего топа dots-ocr. Судя по тестам, это не просто ещё один форк, а реально мощный инструмент.

Chandra уверенно работает с текстом, таблицами и даже формулами. Поддерживает больше сорока языков и не только печатный текст, но и старые рукописи. Один из тестов прогнали на письме Рамануджана 1913 года, и модель справилась без кривых артефактов.

Проект полностью открыт

👉 @PythonPortal
  • 👍 27
  • ❤ 11
  • 🔥 6
Post #5072 8.35K
Microsoft снова в своём стиле

Собирать решение на агенте с ИИ почти никогда не получается с первого раза.

Дни уходят на то, чтобы крутить промпты, добавлять примеры, надеяться на улучшение. Никакой системы, один сплошной тык.

И как раз это решает Agent Lightning от Microsoft. 😏

Это опенсорсный фреймворк, который обучает ЛЮБОГО ИИ-агента с помощью обучения с подкреплением. Подходит для LangChain, AutoGen, CrewAI, OpenAI SDK или просто Python.

Как это работает:

Агент работает как обычно с любым фреймворком. Просто добавляешь лёгкий вызов agl.emit() или даёшь трейсеру самому собирать данные.

Agent Lightning собирает каждый промпт, вызов инструмента и награду. Сохраняет всё как структурированные события.

Ты выбираешь алгоритм (RL, оптимизация промптов, fine-tuning). Он читает события, находит паттерны и генерирует улучшенные промпты или веса политики.

Trainer загружает обновления обратно в агента. Агент становится умнее, без переписывания кода.

Самое приятное: можно оптимизировать каждого агента в системе из нескольких агентов.

👉 @PythonPortal
  • ❤ 15
  • 👍 3
  • 🤔 1
Post #5071 8.86K
Нашёлся бесплатный учебный сайт по программированию на русском

Там много курсов по Python, Tkinter, Django, SQL, алгоритмам. Всякие разборы тем, примеры кода, упражнения. Всё довольно структурировано по разделам, рассчитано на новичков и продолжающих. Автор выкладывает статьи и видеоуроки, иногда небольшие задачи.

👉 @PythonPortal
  • 👍 30
  • ❤ 5
Post #5069 7.87K
Вот почему не стоит выкладывать всё подряд в интернет.

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

👉 @PythonPortal
  • ❤ 15
  • 👍 9
  • 🤣 7
  • 💊 4
Post #5068 8.23K
"Напугайте линуксоида меньше, чем пятью словам"

Я:
  • 😁 111
  • ❤ 9
  • 👍 6
  • 💊 3
Post #5066 8.5K
Самый сильный фактор, который предсказывает способность к программированию, это языковая одаренность. Не математика.

В исследовании, опубликованном в Nature, выяснилось, что навык работы с числами объясняет всего 2% различий в уровне навыков.

При этом нейронные особенности, связанные с языком, объясняют 70% различий.
Хорошие программисты отлично работают со словами. Цифры — упрямые.

Говорю это как человек, который любит математику и даже брал ее как дополнительную специализацию.
Факультетам CS, наверное, стоило бы на полном серьезе набирать побольше тех, кто силен в письме.

Ссылка на исследование: тык

👉 @PythonPortal
  • 🔥 25
  • 🤔 15
  • ❤ 8
  • 🤯 1
Post #5064 8.16K
Python-приложение, которое собирает и запускает само себя

Есть такой инструмент, называется PyApp. Это обёртка, которая позволяет Python-приложению упаковаться в готовый бинарник прямо во время выполнения. Без мучений с pyinstaller, venv и бесконечным разруливанием зависимостей.

Что получаем:

Собирает исполняемые файлы под Windows, macOS и Linux
Есть управляемые команды, включая самообновление
Настраивается под разные сценарии и окружения


Работает как bootstrap-сборщик, тоесть запускаешь один файл и приложение само готовит себе всё нужное

По сути, PyApp делает сборку такой же простой, как запуск python script.py

Документация: https://ofek.dev/pyapp/latest/
GitHub: https://github.com/ofek/pyapp

👉 @PythonPortal
  • 👍 27
  • ❤ 7
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →