Python Portal
56.5K subscribers
2.24K photos
285 videos
51 files
800 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
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
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥18👍86
Deepnote уходит в open source и серьезно наезжает на Jupyter. Платформа предлагает мощный kernel с полной обратной совместимостью, но заметно более современный опыт работы с ноутбуками. Это все тот же формат для исследований данных и быстрой аналитики, только с нормальными версиями, комментариями, ревью и красивыми диффами.

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

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

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
15🤯7👍4
Как вам такое

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7711👍5🤔3🤣3🔥2
🔥Прими участие в Хакатоне от ИТ-холдинга Т1 в Москве и поборись за призовой фонд 1 200 000 рублей!

Когда: 25–28 ноября
Формат: онлайн + финал на площадке

Участвуй, если ты:
🔹обучаешься на технической или ИТ-специальности
🔹развиваешься в направлении разработки, системной администрации, AI/ML или DevOps
🔹сможешь быть в Москве 28 ноября.

Выбери свой кейс:

✴️VibeCode Jam: собеседование будущего. Создай ИИ-платформу для прохождения технических собеседований с виртуальным интервьюером.

✴️Self-Deploy: CI/CD без DevOps. Автоматизируй генерацию CI/CD пайплайнов по анализу структуры Git-репозитория.


Почему стоит участвовать:
🔘Кейс в портфолио и полезная обратная связь от менторов Т1
🔘Шанс проявить себя, чтобы начать карьеру в одной из крупнейших ИТ-компаний
🔘Реальный опыт командной работы
🔘Мерч и атмосфера сильного комьюнити — в Т1 более 5 000 джунов из 580+ вузов России и Беларуси.

Регистрация открыта!
➡️ Успей до 23 ноября по ссылке.

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
💊3
«Это же 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
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🔥1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашли утилиту, которая заставляет клавиатуру звучать как настоящая печатная машинка

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

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

https://github.com/orhun/daktilo

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24🤝4👀21
Крайняя мера

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1259👍2
В сеть утек весь исходный код веб-версии Apple App Store. Они забыли выключить Source Maps, поэтому все читается без проблем, включая комментарии:

https://github.com/rxliuli/apps.apple.com

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👀31😁126
Media is too big
VIEW IN TELEGRAM
Когда сидишь в терминале по уши в работе, все летит как надо. И тут вдруг надо открыть PDF или картинку. Хоп. Вылезаешь из терминала, ищешь нужное приложение, теряешь фокус. Бесит. 🚪

А я вот недавно нашел Mcat. Маленькая, опенсорсная утилита, которая умеет показывать и даже конвертировать кучу форматов прямо в консоли. PDF, Word, PPT и прочие документы. Картинки тоже отображает. Видео, между прочим, крутит.

Короче, чтобы не рвать поток и не щелкать окнами туда-сюда:

GitHub: http://github.com/Skardyy/mcat

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍173🤝2
Генератор в Python это функция, которая возвращает не одно значение, а объект-итератор.

Генераторы отличаются от обычных функций тем, что вместо return используют yield.
Следующее значение из итератора достается вызовом next(generator).

Пример :

def multiple_generator(x, n):
for i in range(1, n + 1):
yield x * i

multiples_of_5 = multiple_generator(5, 3)

print(next(multiples_of_5)) # 5
print(next(multiples_of_5)) # 10
print(next(multiples_of_5)) # 15


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2312
Отличный гайд по Pytest для новичков

На Хабре вышел простой и толковый разбор Pytest, без воды, но с кучей пользы. Фикстуры, метки, примеры и лайфхаки.

После него реально хочется взять и написать свой первый тест 💪

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145
This media is not supported in your browser
VIEW IN TELEGRAM
Когда тестировщик нашел баг перед релизом

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁74😢10🤣6🔥43
Люблю интерактивное обучение программированию 🥺

Поэтому не могу не поделиться этим сайтом: coddy.tech/journeys

Проходишь пошаговые «пути» с заданиями, тестами и практикой. Формат геймифицирован, удобно для новичков: Python, JS, C++, SQL и другие языки.

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

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

from pathlib import Path

p = Path('/usr/local/bin')


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25👀97
Вся правда о тестировщиках.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8919🔥6💊2
This media is not supported in your browser
VIEW IN TELEGRAM
Minecraft теперь можно запустить ИИ-агентов, которыми можно управлять промптами.

Познакомьтесь со Steve — это как Cursor, но для Minecraft.
ИИ-агенты умеют добывать ресурсы, строить и охотиться по команде, а ещё работать вместе.

Похоже, теперь искусственный интеллект играет с нами, а не наоборот.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
36👀7🤯4🏆3
Шпаргалка SQL → Python → Excel, которая помогает быстро понять, как одинаковые операции выполняются в трёх разных инструментах.

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

👉  @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7311👍5🔥3😢1
В Python 3.14 добавили нативные операции для max-кучи в модуле heapq, теперь можно работать и с max-heap без костылей.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥185👍4😁1🤔1
Media is too big
VIEW IN TELEGRAM
Этот чувак буквально объясняет, как с нуля собрать алгоритмический хедж-фонд меньше чем за 6 минут.

Это безумие:

Он использует четыре библиотеки:

• QSConnect - создание базы данных для квант-исследований
• QSResearch - исследование и запуск стратегий машинного обучения
• QSWorkflow - автоматизация всего пайплайна от начала до конца
• Omega - исполнение сделок через Python

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1412🤝4🔥3🤣3🤔1
Он под чем-то 😁

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔47😁35👍5🤣21🔥1