Media is too big
VIEW IN TELEGRAM
Главный секрет bool: он на самом деле int
Складываю True и True, получаю 2
Складываешь два True в Python и получаешь 2. Не баг и не магия: bool наследуется от int, поэтому True это единица, а False это ноль. Минута, и ты больше никогда не удивишься sum по списку булевых значений.
#python
Складываю True и True, получаю 2
Складываешь два True в Python и получаешь 2. Не баг и не магия: bool наследуется от int, поэтому True это единица, а False это ноль. Минута, и ты больше никогда не удивишься sum по списку булевых значений.
#python
❤3👍3🔥3
Forwarded from Just Xor
🐍 Генераторные выражения в Python - один из самых простых способов экономить память.
Обычный list comprehension сразу создаёт весь список:
А generator expression вычисляет значения только по мере необходимости:
То есть миллион элементов не хранится в памяти одновременно.
Можно получать значения по одному:
или передать генератор напрямую в:
Главный плюс - lazy evaluation.
Особенно полезно для:
- больших файлов;
- потоков данных;
- длинных последовательностей;
- ETL-пайплайнов;
- обработки данных, которые не нужно хранить целиком.
Но есть нюанс: генератор одноразовый.
После того как значения закончились, пройти по нему повторно уже нельзя.
Маленький синтаксический приём, который может заметно уменьшить потребление памяти.
#Python #Programming #Backend #DataEngineering
Обычный list comprehension сразу создаёт весь список:
squares = [x ** 2 for x in range(1_000_000)]
А generator expression вычисляет значения только по мере необходимости:
squares = (x ** 2 for x in range(1_000_000))
То есть миллион элементов не хранится в памяти одновременно.
Можно получать значения по одному:
next(squares)
или передать генератор напрямую в:
sum(...)
max(...)
any(...)
all(...)
Главный плюс - lazy evaluation.
Особенно полезно для:
- больших файлов;
- потоков данных;
- длинных последовательностей;
- ETL-пайплайнов;
- обработки данных, которые не нужно хранить целиком.
Но есть нюанс: генератор одноразовый.
После того как значения закончились, пройти по нему повторно уже нельзя.
Маленький синтаксический приём, который может заметно уменьшить потребление памяти.
#Python #Programming #Backend #DataEngineering
👍8❤3
🔥 Python + AI без игрушечных демок. Курс для тех, кто хочет собирать рабочие системы.
Stepik: «Python современный AI для разработчика и автоматизации задач»
63 урока, 382 шага, практика с кодом и автопроверкой.
Внутри: RAG, tool calling, агенты, evals, MCP, Ollama, vLLM, pgvector + HNSW, безопасный text-to-SQL, prompt injection, кэш, очереди и sandbox для агентного кода.
Плюс реальные автоматизации: почта, отчёты, боты, вебхуки и браузерные сценарии.
Для тех, кто уже знает Python и хочет перейти к production AI.
⏳ 72 часа скидка 55%
https://stepik.org/a/295921
Stepik: «Python современный AI для разработчика и автоматизации задач»
63 урока, 382 шага, практика с кодом и автопроверкой.
Внутри: RAG, tool calling, агенты, evals, MCP, Ollama, vLLM, pgvector + HNSW, безопасный text-to-SQL, prompt injection, кэш, очереди и sandbox для агентного кода.
Плюс реальные автоматизации: почта, отчёты, боты, вебхуки и браузерные сценарии.
Для тех, кто уже знает Python и хочет перейти к production AI.
⏳ 72 часа скидка 55%
https://stepik.org/a/295921
❤2👍1🔥1
🔥 6 AI API, которые можно попробовать бесплатно - сохрани, пригодится
Если нужен API для pet-project, прототипа, AI-агента или просто тестов, необязательно сразу подключать платный OpenAI API.
Вот что доступно сейчас:
* ⚡ Groq - бесплатный rate-limited tier и очень быстрый inference для Llama, GPT-OSS, Qwen и других моделей.
* 🤖 Google Gemini - Free Tier для Gemini API с бесплатными input/output токенами на поддерживаемых моделях.
* 🌊 Mistral AI - Free mode включён по умолчанию, можно создать API key без банковской карты. Лимиты ниже production-тарифа.
* 🌸 Pollinations AI - единый API для текста, изображений, аудио и видео, плюс OpenAI-compatible endpoints. Учтите: сервис сейчас развивает систему API-ключей и Pollen credits, поэтому условия бесплатного использования лучше проверять перед интеграцией.
* 🐙 GitHub Models - бесплатный rate-limited доступ к каталогу разных AI-моделей через playground и API. Отлично подходит для прототипирования.
* 🤗 Hugging Face Inference Providers - один API для сотен моделей и разных inference-провайдеров. Бесплатный аккаунт получает небольшие ежемесячные credits для экспериментов.
Важно: free tier ≠ unlimited API. Есть RPM/TPM, дневные квоты, ограничения по моделям и иногда совсем небольшие бесплатные credits.
Но для MVP, теста нового агента или weekend-проекта этого часто достаточно, чтобы начать вообще без расходов. 🚀
Если нужен API для pet-project, прототипа, AI-агента или просто тестов, необязательно сразу подключать платный OpenAI API.
Вот что доступно сейчас:
* ⚡ Groq - бесплатный rate-limited tier и очень быстрый inference для Llama, GPT-OSS, Qwen и других моделей.
console.groq.com/keys* 🤖 Google Gemini - Free Tier для Gemini API с бесплатными input/output токенами на поддерживаемых моделях.
aistudio.google.com/apikey* 🌊 Mistral AI - Free mode включён по умолчанию, можно создать API key без банковской карты. Лимиты ниже production-тарифа.
console.mistral.ai* 🌸 Pollinations AI - единый API для текста, изображений, аудио и видео, плюс OpenAI-compatible endpoints. Учтите: сервис сейчас развивает систему API-ключей и Pollen credits, поэтому условия бесплатного использования лучше проверять перед интеграцией.
pollinations.ai* 🐙 GitHub Models - бесплатный rate-limited доступ к каталогу разных AI-моделей через playground и API. Отлично подходит для прототипирования.
github.com/marketplace/models* 🤗 Hugging Face Inference Providers - один API для сотен моделей и разных inference-провайдеров. Бесплатный аккаунт получает небольшие ежемесячные credits для экспериментов.
huggingface.co/settings/tokensВажно: free tier ≠ unlimited API. Есть RPM/TPM, дневные квоты, ограничения по моделям и иногда совсем небольшие бесплатные credits.
Но для MVP, теста нового агента или weekend-проекта этого часто достаточно, чтобы начать вообще без расходов. 🚀
🔥5❤1👍1
Полный инженерный курс по AI-агентам на русском: от tool calling до production
Курс инженерный, а не обзорный. Здесь почти нет рассуждений о том, «изменит ли ИИ мир», зато есть: минимальные работающие реализации каждого механизма, лабораторные с критериями приёмки, шаблоны для копирования, чек-листы перед релизом, каталог антипаттернов и набор бенчмарков, по которым можно честно сравнить две версии своего агента.
Качество агента почти никогда не упирается в модель. Оно упирается в инженерию вокруг модели: как описаны инструменты, что попадает в контекст, где стоят проверки, что происходит при третьей подряд ошибке и сколько это стоит за тысячу запусков. Модель - двигатель. Курс -про всё остальное в автомобиле.
https://github.com/justxor/Aiagentsfullcourse
Курс инженерный, а не обзорный. Здесь почти нет рассуждений о том, «изменит ли ИИ мир», зато есть: минимальные работающие реализации каждого механизма, лабораторные с критериями приёмки, шаблоны для копирования, чек-листы перед релизом, каталог антипаттернов и набор бенчмарков, по которым можно честно сравнить две версии своего агента.
Качество агента почти никогда не упирается в модель. Оно упирается в инженерию вокруг модели: как описаны инструменты, что попадает в контекст, где стоят проверки, что происходит при третьей подряд ошибке и сколько это стоит за тысячу запусков. Модель - двигатель. Курс -про всё остальное в автомобиле.
https://github.com/justxor/Aiagentsfullcourse
❤7👍5🔥3
Media is too big
VIEW IN TELEGRAM
Python в 10 потоков работает медленнее, чем в один. Виноват GIL
Запускаешь CPU-bound задачу в 10 потоков и получаешь результат медленнее, чем в один. В любой момент времени байткод исполняет только один поток: остальные стоят в очереди за GIL, а переключения между ними съедают весь выигрыш. Правило простое: для ожидания берёшь threads и async, для вычислений — multiprocessing.
Запускаешь CPU-bound задачу в 10 потоков и получаешь результат медленнее, чем в один. В любой момент времени байткод исполняет только один поток: остальные стоят в очереди за GIL, а переключения между ними съедают весь выигрыш. Правило простое: для ожидания берёшь threads и async, для вычислений — multiprocessing.
❤5👍5🔥2
⚡️ Harness Engineering - полный курс на русском
Как заставить AI-агента писать код надёжно. Не «какую модель выбрать», а как спроектировать вокруг неё рабочую систему: инструкции, инструменты, среду, состояние и верификацию.
Курс - от нуля до продвинутых тем: теоретическая база из 11 блоков, 14 модулей, 8 практических проектов, 14 лабораторных работ, диагностический протокол «как починить агента», библиотека готовых шаблонов, карта инструментов, 40 приёмов и каталог антипаттернов.
Главный тезис курса: способность модели и надёжность исполнения - это две разные вещи. Одна и та же модель в «голой» среде и в среде с продуманным harness даёт качественно разные результаты. Апгрейд модели - это самый дорогой и обычно не самый эффективный способ починить агента.
https://github.com/justxor/Harness_ru
Как заставить AI-агента писать код надёжно. Не «какую модель выбрать», а как спроектировать вокруг неё рабочую систему: инструкции, инструменты, среду, состояние и верификацию.
Курс - от нуля до продвинутых тем: теоретическая база из 11 блоков, 14 модулей, 8 практических проектов, 14 лабораторных работ, диагностический протокол «как починить агента», библиотека готовых шаблонов, карта инструментов, 40 приёмов и каталог антипаттернов.
Главный тезис курса: способность модели и надёжность исполнения - это две разные вещи. Одна и та же модель в «голой» среде и в среде с продуманным harness даёт качественно разные результаты. Апгрейд модели - это самый дорогой и обычно не самый эффективный способ починить агента.
https://github.com/justxor/Harness_ru
❤1👍1🔥1🍌1
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://xn--r1a.website/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: https://xn--r1a.website/+S4hinvO3QI43ZjNi
Kubernetes: t.me/kubernetc
GameDev: https://xn--r1a.website/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://xn--r1a.website/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://xn--r1a.website/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://xn--r1a.website/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://xn--r1a.website/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://xn--r1a.website/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: https://xn--r1a.website/+S4hinvO3QI43ZjNi
Kubernetes: t.me/kubernetc
GameDev: https://xn--r1a.website/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://xn--r1a.website/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://xn--r1a.website/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://xn--r1a.website/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://xn--r1a.website/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
❤4🔥2
Media is too big
VIEW IN TELEGRAM
Блокчейн за минуту: почему один изменённый блок ломает всю цепь
Каждый блок хранит данные, время и хэш предыдущего блока, поэтому цепь держится сама на себе. Меняешь один байт в первом блоке, его хэш становится другим, и все последующие блоки мгновенно превращаются в недействительные. Показываю механику на тридцати строках Python: класс Block, SHA-256 и три транзакции, где видно, как ломается связь.
#blockchain #jojo
Каждый блок хранит данные, время и хэш предыдущего блока, поэтому цепь держится сама на себе. Меняешь один байт в первом блоке, его хэш становится другим, и все последующие блоки мгновенно превращаются в недействительные. Показываю механику на тридцати строках Python: класс Block, SHA-256 и три транзакции, где видно, как ломается связь.
#blockchain #jojo
🎉1
Python: как не дать нескольким процессам одновременно полезть в один ресурс
В
Для таких случаев есть
Дальше один и тот же
Пока один процесс находится внутри
Это особенно полезно при работе с файлами, логами, общими структурами и другими ресурсами, где одновременная запись может привести к race condition.
И лучше использовать
В
multiprocessing процессы работают параллельно и иногда пытаются одновременно изменить один и тот же ресурс.Для таких случаев есть
Lock:
from multiprocessing import Process, Lock
def printer(item, lock):
with lock:
print(item)
Дальше один и тот же
lock передаётся всем процессам:
if __name__ == "__main__":
lock = Lock()
for item in ["tango", "foxtrot", 10]:
Process(
target=printer,
args=(item, lock)
).start()
Пока один процесс находится внутри
with lock:, остальные ждут.Это особенно полезно при работе с файлами, логами, общими структурами и другими ресурсами, где одновременная запись может привести к race condition.
И лучше использовать
with lock:, а не вручную acquire() / release() — так блокировка гарантированно снимется даже при исключении.👍6🔥3🥰1
📚 Бесплатная книга по causal inference + ML
Applied Causal Inference Powered by Machine Learning and AI - большая открытая книга про причинно-следственный анализ с современным уклоном в машинное обучение и AI.
Внутри:
* causal graphs и DAG
* потенциальные исходы
* A/B и observational data
* propensity score
* matching и weighting
* heterogeneous treatment effects
* Double/Debiased Machine Learning
* causal forests
* uplift и policy learning
* связь causal inference с современными ML-моделями
Подойдёт тем, кто хочет выйти за пределы обычной корреляции и разбираться, что действительно влияет на результат.
496 страниц, PDF доступен бесплатно:
http://arxiv.org/abs/2403.02467
Applied Causal Inference Powered by Machine Learning and AI - большая открытая книга про причинно-следственный анализ с современным уклоном в машинное обучение и AI.
Внутри:
* causal graphs и DAG
* потенциальные исходы
* A/B и observational data
* propensity score
* matching и weighting
* heterogeneous treatment effects
* Double/Debiased Machine Learning
* causal forests
* uplift и policy learning
* связь causal inference с современными ML-моделями
Подойдёт тем, кто хочет выйти за пределы обычной корреляции и разбираться, что действительно влияет на результат.
496 страниц, PDF доступен бесплатно:
http://arxiv.org/abs/2403.02467
👍4❤3🔥1
Forwarded from Machinelearning
Архитектура MoE:
- 770B параметров всего
- 49B активны на токен
- контекст до 1 млн токенов
- упор на coding, agentic-задачи и продуктивность
Использует Gated DeepSeek Sparse Attention + IndexCache, чтобы удешевить длинный контекст и переиспользовать sparse-индексы между слоями.
Tencent позиционирует Hy4 как frontier-level open model с доступной стоимостью запуска.
Apache 2.0
https://huggingface.co/tencent/Hy4-preview
@ai_machinelearning_big_data
#Tencent
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Бесплатный ElevenLabs, который можно запускать локально:
VoiceStudio - локальная open-source студия для работы с голосом без подписок и лимитов
В одном приложении собрали:
- клонирование голоса по короткому образцу
- создание голоса по описанию - возраст, акцент, стиль, подача
- автоматический дубляж видео с переводом и разделением спикеров
- импорт EPUB/PDF и сборку многоголосых аудиокниг
- диктовку с очисткой текста локальной LLM
- удаление фонового звука через Demucs
- разделение говорящих через Pyannote/WhisperX
- MCP-сервер и локальный API
Внутри - 16 TTS-движков, 11 ASR-систем и каталог на 646 языков**. Основные данные и проекты по умолчанию остаются на вашем компьютере. Работает на Windows, Linux и Apple Silicon Mac.
Проект пока в активной beta.
https://github.com/debpalash/VoiceStudio
VoiceStudio - локальная open-source студия для работы с голосом без подписок и лимитов
В одном приложении собрали:
- клонирование голоса по короткому образцу
- создание голоса по описанию - возраст, акцент, стиль, подача
- автоматический дубляж видео с переводом и разделением спикеров
- импорт EPUB/PDF и сборку многоголосых аудиокниг
.m4b- диктовку с очисткой текста локальной LLM
- удаление фонового звука через Demucs
- разделение говорящих через Pyannote/WhisperX
- MCP-сервер и локальный API
Внутри - 16 TTS-движков, 11 ASR-систем и каталог на 646 языков**. Основные данные и проекты по умолчанию остаются на вашем компьютере. Работает на Windows, Linux и Apple Silicon Mac.
Проект пока в активной beta.
https://github.com/debpalash/VoiceStudio
👍3🔥1
Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
Спустя 10 дней после релиза, модель на 305 млрд параметров опубликована под лицензий MIT.
Чекпоинт экспериментальный, её собрали на архитектуре V4-Flash, добавили визуальные модули и дообучили на понимание изображений, что бы получился агент, который умеет разбирать скриншоты, читать графики и работать с инструментами.
На ApexBench модель берет 36,5 балла против 26,2 у предыдущей V4-Flash-0731.
Тут сравнение не совсем честное - старая модель не поддерживает изображения во входных данных.
На Agents' Last Exam новинка дает 27,3 против 25,7 у Opus 4.8, на ZeroBench - 35,0 против 34,0.
На ApexBench и Chartography от того же Opus пока отстает - 36,5 против 39,4 и 64,3 против 65,0.
Toolathlon-Verified - 75,9 против 70,3 у предшественницы, NL2Repo - 57,7 против 54,2. Просела только Cybergym, 75,3 против 76,7.
На DeepSWE модель обходит и Opus 4.8 - 59,3 против 58,0.
На Terminal Bench 2.1 уступает - 83,9 против 85,0.
В репозитории лежат токенизатор, минимальный инференс на PyTorch с визуальным энкодером, DFlash-вниманием, MoE, Hyper-Connections и прямым проходом DSpark.
Картинки можно подавать и блоками в стиле OpenAI, и компактной записью через теги. Запускается через vLLM, SGLang, Transformers и Docker.
Cообщество уже сделало квантованные версии для локального запуска.
@ai_machinelearning_big_data
#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
CPython официально добавил поддержку RISC-V 🚀
RISC-V теперь официально поддерживается CPython как платформа Tier 3.
Это важный шаг для открытой архитектуры процессоров: в отличие от x86 и ARM, RISC-V основана на открытом ISA и может свободно использоваться производителями железа.
До этого Python уже запускался на RISC-V, но теперь архитектура официально внесена в PEP 11. Для неё появились постоянные buildbot-тесты на реальном RISC-V-железе, предоставленном RISE Project.
Следующие цели:
- добавить RISC-V непосредственно в CI CPython;
- быстрее находить архитектурные баги до merge;
- со временем поднять поддержку до Tier 2;
- добавить оптимизации CPython специально под возможности RISC-V.
-
Для Python это ещё один шаг к полноценной поддержке RISC-V не только на уровне интерпретатора, но и всей экосистемы пакетов и инструментов.
https://blog.python.org/2026/08/riscv-now-officially-supported/
RISC-V теперь официально поддерживается CPython как платформа Tier 3.
Это важный шаг для открытой архитектуры процессоров: в отличие от x86 и ARM, RISC-V основана на открытом ISA и может свободно использоваться производителями железа.
До этого Python уже запускался на RISC-V, но теперь архитектура официально внесена в PEP 11. Для неё появились постоянные buildbot-тесты на реальном RISC-V-железе, предоставленном RISE Project.
Следующие цели:
- добавить RISC-V непосредственно в CI CPython;
- быстрее находить архитектурные баги до merge;
- со временем поднять поддержку до Tier 2;
- добавить оптимизации CPython специально под возможности RISC-V.
-
Для Python это ещё один шаг к полноценной поддержке RISC-V не только на уровне интерпретатора, но и всей экосистемы пакетов и инструментов.
https://blog.python.org/2026/08/riscv-now-officially-supported/
👍6❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🐍 Python считает эти даты равными. Хотя между ними целый час
В ночь перевода часов время 02:30 наступает дважды:
Это разные моменты:
Но Python выдаёт:
Причина: если у двух
Из-за этого дедупликация может принять два платежа, заказа или события за одно.
Для сравнения реальных моментов переводите время в UTC:
Используйте
https://docs.python.org/3/library/datetime.html
https://peps.python.org/pep-0495/
В ночь перевода часов время 02:30 наступает дважды:
from datetime import datetime, UTC
from zoneinfo import ZoneInfo
tz = ZoneInfo("Europe/Berlin")
a = datetime(2026, 10, 25, 2, 30, tzinfo=tz, fold=0)
b = datetime(2026, 10, 25, 2, 30, tzinfo=tz, fold=1)
print(a)
# 2026-10-25 02:30:00+02:00
print(b)
# 2026-10-25 02:30:00+01:00
Это разные моменты:
a = 00:30 UTC
b = 01:30 UTC
Но Python выдаёт:
a == b # True
b - a # 0:00:00
len({a, b}) # 1
Причина: если у двух
datetime один объект tzinfo, при сравнении Python игнорирует смещение и fold.Из-за этого дедупликация может принять два платежа, заказа или события за одно.
Для сравнения реальных моментов переводите время в UTC:
a_utc = a.astimezone(UTC)
b_utc = b.astimezone(UTC)
a_utc == b_utc
# False
(b_utc - a_utc).total_seconds()
# 3600.0
Используйте
astimezone(UTC). Метод replace(tzinfo=UTC) только заменяет метку и не пересчитывает время.https://docs.python.org/3/library/datetime.html
https://peps.python.org/pep-0495/
🔥4❤2