Pull to refresh
3
0
Олег А. @t0rr

PO, DEV

Send message

И в ту же копилку цитат от автора: "[asyncpg] Всего в 2 раза лучше, чем psycopg2"

Я больше 5 лет арендую серверы у другой российской компании

Локация: Амстердам
16 CPU 3.4 GHz
16 GB RAM
50 Gb nve/ssd/hdd

Ваш калькулятор: 9940 ₽ / месяц

Калькулятор другой компании: 6858 ₽ / месяц

Калькулятор hetzner (соседняя локация, но доп. 16 GB RAM сверху): 5 386 ₽ / месяц

Почему я должен переехать к вам? :)

Ещё один готовый набор для кафки:

https://github.com/confluentinc/cp-all-in-one

Где-то плачет один Гвидо со своим:

There should be one-- and preferably only one --obvious way to do it.

Теперь проблема решается с помощью ruff

Настройки:

[tool.ruff]
select = [..., "Q"]

[tool.ruff.flake8-quotes]
docstring-quotes = "double"
inline-quotes = "single"
multiline-quotes = "double"
avoid-escape = false

Кэшировать можно в память или в специальные хранилища (при необходимости), как вариант - aiocache.

Для конфига я чаще всего использую pydantic.

Ответ на callback_query не подразумевает наличие клавиатуры, не путайте с ответом на сообщение

  1. В данном руководстве для получения погоды используется синхронный клиент. Соответственно, пока бот ждёт ответа от сервиса погоды, асинхронное приложение БЛОКИРУЕТСЯ и не обрабатывает другие сообщения. Используйте асинхронный клиент для избежания блокировок. В aiogram мы используем aiohttp.

  2. Запросы к API лучше кэшировать. Если у вас пользователь дёргает погоду 30 раз в секунду, то нагружать API не имеет смысла, просто отдайте пользователю предыдущий результат.

  3. Сервис погоды может быть временно недоступен и ваше приложение к этому не готово. Используйте backoff и допишите сценарий отказа пользователю.

  4. В aiogram мы добавили много удобных шорткатов, например отвечать на callback query можно так: callback_query.answer()

  5. Держать config.py в репозитории - не очень хорошая практика. Если хочется именно такой формат конфигурации оставить, то в репозиторий приложите пример (с другим именем), а ваш пользователь уже скопирует его в config.py. Сам config.py добавьте в ignore, чтобы он не попадал в git.

Ровно так и происходит. Весной Монго написал что-то про корабль и удалил мой облачный инстанс...

Очень просто. Не так давно в телеграм появились запросы на вступление. Получая такой запрос, бот может написать пользователю в ЛС, выдать капчу и только после прохождения подтвердить заявку на вступление.

То, что отличий много - понятно. На мой взгляд остался не раскрыт профит от использования всего этого добра. Замена настроек логирования в рантайме - очень специфичная задача, больше похожая на костыль, чем на повседневную потребность. Блю-грин никто не отменял.

Т.е. прочитав статью, я остался при мнении, что в случае необходимости валидации я возьму pydantic, а в случае необходимости неблокирующего logging возьму пример из документации. А хотелось бы зайти в статью, найти что-то полезное и унести с собой ))

Прочитал тезис про "красиво" - спорить не буду. Но хочется посмотреть на тесты производительности - это была одна из причин отказа от loguru и возврат к обычному logging

loguru - прекрасная? От неё больше проблем, чем пользы... Начните хотя бы с тестирования производительности

Сноска от авторов про "10x faster" давно зачёркнута с припиской "In an upcoming release, Loguru's critical functions will be implemented in C for maximum speed.", но этот upcoming release уже давно не может произойти )

Хотелось бы в статье видеть некий сравнительный анализ:

  1. Чем не устраивает валидация в pydantic?

  2. Чем не устраивают неблокирущие примеры logging из документации python? (там есть варианты и с мультипроцессингом, и с тредами)

Оу, действительно, неправильно воспринял описание фичи про 2.0.0.

В любом случае, спасибо и за библиотеки, и за видео :)

Если вопрос в обычных сообщениях, убедитесь, что у бота ВЫКЛЮЧЕНА приватность или выданы права администратора. Если вопрос в упоминаниях, то надо дебажить aiogram - спросите в чате, помогут

Всё ещё проще, aiofile не умел работать без тредов, когда записывалась эта лекция :)

В п.12 прикреплено неправильное видео. Замените на вот это: https://www.youtube.com/watch?v=FFUYf8FHDlY

В п.12 отличная лекция по проблемам asyncio. Не понял только историю с самопальной реализацией файлового менеджера на тредах, при здравствующем aiofile, который умеет работать с файлами асинхронно.

Там боль в том, что HTML-приложение работает на стороне пользователя и можно делать с результатами что угодно. Любая HTML игра, которую я видел в телеграм, ломается в отличие о игр в ботах (True Mafia например), где пользователю код на устройство не загружается
Про лимиты очень размыто написано.

Рекомендую дополнить:
Лимиты можно увеличить для популярных ботов, при двух условиях:
1. Бот будет забывать про сообщения старше недели. Т.е. получая CallbackQuery из такого сообщения, вы не сможете получить объект Message.
2. Владелец обязуется не использовать смягчение лимитов для рассылок, в обратном случает лимиты вернут
Вот тикет, на который можно подписаться и следить за DataGrip+Redis
youtrack.jetbrains.com/issue/DBE-283

* ему уже 6 лет, если чо

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity