home.social

#asyncio — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #asyncio, aggregated by home.social.

  1. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  2. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  3. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  4. Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

    Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

    habr.com/ru/articles/1029968/

    #python #sql #orm #dsl #caching #asyncio #sqlинъекция #query_cache #django #redis

  5. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  6. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  7. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  8. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  9. I am mostly known for my work, but for years I have maintained for , a substandard.

    Over a month ago, I realized there isn't the an library for , the protocol.

    It sent me down the deepest rabbit hole of my life. Dozens and dozens of decades-old RFC standards, some predating the Internet.

    Today I emerge with a first draft and a call for HELP!

    github.com/codingjoe/VoIP

  10. Почему я написал Ёбифай: свой планировщик для фоновых задач на Python

    Но очень быстро оказывается, что настоящая сложность не в самих задачах, а в инфраструктуре вокруг них. Сначала хочется просто запускать код в фоне. Потом появляются ретраи, таймауты, логирование, контроль выполнения. Ещё чуть позже всплывают совсем неприятные вопросы: что делать с пропущенными запусками после рестарта, как не дублировать задачи и где вообще должна жить логика планирования. В какой-то момент становится очевидно:

    habr.com/ru/articles/1018646/

    #scheduler #cron #crontab #cronjob #background_job #background_jobs #asyncio

  11. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  12. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  13. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  14. Мы сделали лучший REST фреймворк для Django

    Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django. Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса. Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

    habr.com/ru/articles/1017036/

    #python #django #asyncio #fastapi #sse

  15. github-monitor is now forgewatch!

    I rebranded my PR monitoring daemon. The old name locked it to a single platform, but the vision has always been broader than that. "forgewatch" better reflects what the app is really about: watching over your code forge, wherever it lives.

    Why the rename? Two reasons:

    1. It's more general. The architecture doesn't depend on GitHub specifically, and I want to grow it to support GitLab, Gitea, and other forges over time.
    2. It's more descriptive. "forgewatch" tells you exactly what it does -- it watches your forge for pull requests and keeps you notified via D-Bus and desktop notifications on Linux.

    The daemon is async Python, runs as a systemd user service, and comes with an optional system tray indicator. Give it a look if you're a Linux dev who juggles PRs across repos.

    github.com/dvoraj75/forgewatch
    pypi.org/project/forgewatch/

    #forgewatch #opensource #python #linux #devtools #foss #github #gitlab #gitea #asyncio #dbus #systemd

  16. Как устроены задачи (Task) в asyncio

    В прошлой статье мы разобрали механику событийного цикла asyncio. В этот раз поговорим о задачах, объектах класса asyncio.Task (они же по-простому "таски"). Тема важная, потому что по сути вся работа событийного цикла сводится к постоянному жонглированию задачами: запустить, приостановить, разбудить, завершить. Если понять, как устроена таска изнутри, изрядная доля магии asyncio (как и нелюбви к нему) исчезнет. На десерт шок-контент: почему await далеко не всегда является точкой, где управление возвращается событийному циклу, чтобы он мог переключиться на другую задачу. Погружаемся

    habr.com/ru/articles/1002690/

    #asyncio #async #await #python #асинхронность #асинхронное_программирование #таски #event_loop

  17. Как устроены задачи (Task) в asyncio

    В прошлой статье мы разобрали механику событийного цикла asyncio. В этот раз поговорим о задачах, объектах класса asyncio.Task (они же по-простому "таски"). Тема важная, потому что по сути вся работа событийного цикла сводится к постоянному жонглированию задачами: запустить, приостановить, разбудить, завершить. Если понять, как устроена таска изнутри, изрядная доля магии asyncio (как и нелюбви к нему) исчезнет. На десерт шок-контент: почему await далеко не всегда является точкой, где управление возвращается событийному циклу, чтобы он мог переключиться на другую задачу. Погружаемся

    habr.com/ru/articles/1002690/

    #asyncio #async #await #python #асинхронность #асинхронное_программирование #таски #event_loop

  18. Как устроены задачи (Task) в asyncio

    В прошлой статье мы разобрали механику событийного цикла asyncio. В этот раз поговорим о задачах, объектах класса asyncio.Task (они же по-простому "таски"). Тема важная, потому что по сути вся работа событийного цикла сводится к постоянному жонглированию задачами: запустить, приостановить, разбудить, завершить. Если понять, как устроена таска изнутри, изрядная доля магии asyncio (как и нелюбви к нему) исчезнет. На десерт шок-контент: почему await далеко не всегда является точкой, где управление возвращается событийному циклу, чтобы он мог переключиться на другую задачу. Погружаемся

    habr.com/ru/articles/1002690/

    #asyncio #async #await #python #асинхронность #асинхронное_программирование #таски #event_loop

  19. Как устроены задачи (Task) в asyncio

    В прошлой статье мы разобрали механику событийного цикла asyncio. В этот раз поговорим о задачах, объектах класса asyncio.Task (они же по-простому "таски"). Тема важная, потому что по сути вся работа событийного цикла сводится к постоянному жонглированию задачами: запустить, приостановить, разбудить, завершить. Если понять, как устроена таска изнутри, изрядная доля магии asyncio (как и нелюбви к нему) исчезнет. На десерт шок-контент: почему await далеко не всегда является точкой, где управление возвращается событийному циклу, чтобы он мог переключиться на другую задачу. Погружаемся

    habr.com/ru/articles/1002690/

    #asyncio #async #await #python #асинхронность #асинхронное_программирование #таски #event_loop

  20. Событийный цикл в asyncio: как Python-код работает поверх механизмов Linux

    Большая статья для тех, кто, как и я, споткнулся об asyncio и так не разгадал до конца "магию" событийного цикла. Попробовал распутать этот клубок через подробный рассказ (в как можно более доступной форме) о внутренних механизмах Линукса и самого asyncio, которые лежат в основе событийного. К концу статьи, надеюсь, магия исчезнет, а останется ясное понимание фундамента. Погружаемся

    habr.com/ru/articles/995032/

    #asyncio #python #epoll #selectors #асинхронность #event_loop #eventloop #linux #сокеты

  21. Событийный цикл в asyncio: как Python-код работает поверх механизмов Linux

    Большая статья для тех, кто, как и я, споткнулся об asyncio и так не разгадал до конца "магию" событийного цикла. Попробовал распутать этот клубок через подробный рассказ (в как можно более доступной форме) о внутренних механизмах Линукса и самого asyncio, которые лежат в основе событийного. К концу статьи, надеюсь, магия исчезнет, а останется ясное понимание фундамента. Погружаемся

    habr.com/ru/articles/995032/

    #asyncio #python #epoll #selectors #асинхронность #event_loop #eventloop #linux #сокеты

  22. Событийный цикл в asyncio: как Python-код работает поверх механизмов Linux

    Большая статья для тех, кто, как и я, споткнулся об asyncio и так не разгадал до конца "магию" событийного цикла. Попробовал распутать этот клубок через подробный рассказ (в как можно более доступной форме) о внутренних механизмах Линукса и самого asyncio, которые лежат в основе событийного. К концу статьи, надеюсь, магия исчезнет, а останется ясное понимание фундамента. Погружаемся

    habr.com/ru/articles/995032/

    #asyncio #python #epoll #selectors #асинхронность #event_loop #eventloop #linux #сокеты

  23. 15 часов на скрипт, температура 40° и AI-ментор: как я писал VLESS-агрегатор, сразу после «Hello World!»

    В этой статье не будет сложной математики или языков программирования. Это история о том, как студент‑медик с нулевыми знаниями Python испытал психоз в температуре и слившись сознанием с ИИ, написал своего Telegram‑бота. Как парсить тысячи VLESS‑ключей с GitHub? Как отличить живой сервер от мертвого за 2 секунды? Как генерировать QR‑коды и JSON‑конфиги в оперативной памяти, чтобы не убить бесплатный сервер? (ответов на эти вопросы слава Богу НЕ будет!) Почему реклама такая убогая? Зачем он всему интернету рассказывает, что ты дурачок, раньше только дома знали... Гайд, как грипп, выгорание и умение ИИ следовать настроению пользователя создали новое хобби и почему программировать — это хотя бы весело. А самое главное — что вы видите на рисунке? Будьте внимательны — от этого зависит диагноз.

    habr.com/ru/articles/985746/

    #aiogram3 #asyncio #telegram #telegrambot #telegram_bot #telegram_bots #telegrambot #vless #vpn #vpnсервер

  24. Асинхронный Python: руководство для начинающих с практическим заданием

    Ваш Python-скрипт работает медленно. Вы запускаете его и смотрите, как он "висит", ожидая загрузки файла, ответа от API или завершения запроса к базе данных. Проблема почти всегда одна — ожидание. В программировании такие задачи называются I/O-bound (ограниченные вводом-выводом), и именно они "съедают" драгоценное время. Асинхронный подход меняет правила игры. Вместо того чтобы "зависать" в ожидании, программа говорит: "Окей, эта задача пока ждет ответа от сети, а я пока займусь другой". Она эффективно использует время простоя, переключаясь между задачами и выполняя ту, которая готова к работе. В итоге общая производительность приложения, интенсивно работающего с сетью или файлами, может вырасти в разы.

    habr.com/ru/articles/958956/

    #асинхронный_пайтон #пайтон #async #asyncio #asynchronous

  25. Как я в одиночку спроектировал API-шлюз на FastAPI, который держит 200к+ запросов в сутки

    Привет, Хабр! я Python-инженер. Последние несколько лет я в одиночку строил довольно сложную бэкенд-систему, и за это время набил немало шишек и нашел, как мне кажется, несколько интересных решений. В этой статье я хочу поделиться не "историей успеха", а конкретными архитектурными проблемами и их решениями при построении высокопроизводительного сервиса на асинхронном Python. Статья будет полезна тем, кто работает с FastAPI, микросервисами и думает о надежности и масштабируемости своих систем.

    habr.com/ru/articles/957898/

    #fastapi #asyncio #python #rabbitmq #highload #devops #system_design #микросервисы

  26. [Перевод] Почему асинхронный Python не такой популярный?

    Недавно на Youtube появилась документалка о Python . Примерно в середине ленты есть драматический эпизод о том, как переход от Python 2 к 3 разделил сообщество (спойлер: в конечном итоге этого не случилось ). Первые версии Python 3 (3.0-3.4) в основном делали упор на стабильность и упрощение перехода пользователей с версии 2.7. В 2015 была выпущена версия 3.5 с новой фичей: ключевыми словами async и await для выполнения корутин . Миновало десять лет и девять релизов, через считанные недели выпустят финальную версию Python 3.14. Пока все отвлеклись на фичи разноцветного REPL в 3.14, в release notes появились серьёзные заявления, связанные с конкурентностью и параллелизмом.

    habr.com/ru/articles/943878/

    #конкурентность #параллелизм #gil #async #await #asyncio

  27. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  28. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  29. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  30. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  31. Telegram AI Digest Generator

    Python-скрипт, предназначенный для извлечения сообщений из Telegram-канала и их обработки с помощью Claude AI, что позволяет создавать дайджесты (краткое изложение) и генерировать изображения через Replicate API.

    Результаты отправляются в сохраненные сообщения пользователя в Telegram.

    Используются Telegram API, Claude AI, Replicate API и Asyncio для эффективного выполнения задач.

    src: github.com/sliday/telegram-ai-

    #opensource #github #telegram #ai #replicate #digest #claude #asyncio #telegram_api

  32. Hello,

    here is the new Salut à Toi progress note (W35): goffi.org/b/XrWnwBdzfSha4i5KhK .

    I'm taking there about asyncio and how to fix some historical design issues.

    #salutatoi #XMPP #progress_note #python #asyncio #twisted