15 Jun 2025, 14:44 UTC709 views7 reactionsread 8 August 2026 🔩 Если вам понадобится в рантайме поменить тип принимаемого объекта в роуте FastAPI, вот вам небольшой рецепт.
😆 Для одного проекта я решил сделать плагин-систему, которая автоматически регистрирует python-файлы и добавляет эндпоинты в API написанном на FastAPI. Так как я использую OpenAPI, очень хочется, чтобы принимаемые и возвращаемые типы отображались в нём корректно.
➡️Допустим, есть у меня вот такой код, созд…
🤯4🔥3
8 Jun 2025, 14:06 UTC641 views13 reactionsread 8 August 2026 💡 asyncssh - асинхронный ssh клиент и не только
👀 Если вы будете искать асинхронную альтернативу paramiko (это реализация SSHv2 на чистом питоне), то скорее всего наткнетесь на asyncssh - paramiko из под коробки не умеет в асинк.
❓ Вообще, зачем он нужен, тем более для python? А давайте посмотрим, какие примеры есть у asyncssh:
➡️ Обычный клиент, который заходит на сервер и отправляет туда команду. Полезно, когда …
👏6🔥3🤔3❤1
4 Jun 2025, 16:00 UTC675 views25 reactionsread 8 August 2026 😎ovld - перегрузка функций по-человечески
👩💻 Наверняка любой из нас когда-то писал код по типу этого:
def process(x: str | int) -> None:
if isinstance(x, int):
do_for_int(x)
elif isinstance(x, str):
do_for_str(x)
🙈 А пишем мы так потому-что в Python из под коробки нет красивой и нормальной поддержки ad-hoc полиморфизма, аля перегрузки методов.
❓ Ad-hoc полиморфизм - это возможность вызывать …
🎉13🔥8❤4
31 May 2025, 13:18 UTC≈1,080 views21 reactionsread 8 August 2026 Photo
niquests - молодой преемник requests
Долгое-долгое время всеми нами любимая библиотека request для http запросов была де-факто стандартом.
Но время шло, в питоне появилось нормальное асинхронное программирование, технологии развивались, а requests никак не адаптировался к изменениям - у них там гордый feature freeze.
Когда у меинтейнеров спрашивали, как там насчёт асинка, видите ли, requests - это "feature-complete …
🔥21
30 May 2025, 13:53 UTC588 views13 reactionsread 8 August 2026 Photo
Помните про такую старинную питонячью забаву - гуй/фронтенд через Python рисовать?
Я даже пару постов делал об этом (тык, тык) - но все эти инструменты были "ну такие". Где-то фатальный недостаток в архитектуре, где-то кнопки мне не понравились.
В основном это нужно для людей, которые от фронтенда достаточно далеки - ML-щики, аналитики и датасотонисты, например. Я их понимаю, не осуждаю. Вот и ребята из Snowflake по…
🔥8👏4❤1
24 May 2025, 16:14 UTC928 views17 reactionsread 8 August 2026 Rapidy - новый web-фреимворк на базе aiohttp
Недавно заметил, что в чатиках разгоняют про ещё один новый web-фреимворк, только уже построенный на aiohttp. Зачем, конечно, в 2025 году использовать aiohttp - вопрос сложный, но автор отвечает на него так - это для любителей aiohttp. Ну раз так, то ладно.
Вообще, когда я писал сервисы на aiohttp, мне всегда хотелось иметь работу с pydantic как у FastAPI. Можно сказать, …
🔥9❤5👏3
15 Apr 2025, 10:15 UTC734 views17 reactionsread 8 August 2026 Forwarded from @ithuetiPhoto
Photo, posted without a caption
🤩11😱5👏1
10 Apr 2025, 21:48 UTC881 views3 reactionsread 8 August 2026 Photo
Вроде крутой PEP, но напрашиваются вопросы:
1. Умрут ли всякие шаблонизаторы, по типу Jinja/Mako?
В самом PEP пишут что они необходимы в качестве использования средства кастомизации, но выглядит все это так, как будто надстройки над Template смогут их заменить.
2. В motivation написано, что якобы те, кто не осилили доку юзали f-строки для SQLек, что может привести к SQL-инъекциям, и мы щас темплейтами всё решим.
А …
❤3
10 Apr 2025, 21:41 UTC648 views1 reactionsread 8 August 2026 Forwarded from @cpython_notes
Breaking: PEP 750 - Template Strings был принят:
https://github.com/python/steering-council/issues/275#issuecomment-2794619570
👏1
23 Jan 2025, 18:31 UTC889 views8 reactionsread 8 August 2026 Forwarded from @opensource_findings
В asyncio добавили возможность смотреть граф вызова корутин
Ждем в python3.14: https://github.com/python/cpython/commit/188598851d5cf475fa57b4ec21c0e88ce9316ff0
Пример:
import asyncio
async def test():
asyncio.print_call_graph()
async def main():
async with asyncio.TaskGroup() as g:
g.create_task(test(), name=test.__name__)
asyncio.run(main())
Выведет:
* Task(name='test', id=0x10304eee0)
…
🔥6🎉2
1 Sept 2024, 11:25 UTC≈1,160 views19 reactionsread 8 August 2026 Сегодня расскажу про модуль, который поможет остановить время в ваших тестах и не только - FreezeGun
Сначала история из жизни.
Недавно мне принесли скрипт, который скрапил некоторую информацию с онлаин-каталога на текущий момент. Задачей было заставить его скрапить данные до определенного момента.
В нём было очень много вызовов datetime.now() (пагинация по датам, ага), перепиливать все это мне не очень хотелось, а р…
🔥17❤2
2 Jun 2024, 09:58 UTC≈1,300 views18 reactionsread 8 August 2026 Photo
Самым залайканным оказался вот этот мемас, приз отправлен автору!
👏18
Showing the 12 most recent of 20 posts we hold for @boxwithpython. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.