Постов не было ровно 10 дней (считал на пальцах, ошибиться не должен), никаких новостей за все это время не было. Число конечно, красивое 😅, но все же надо дать какой-то "отчёт". Чем я занимался эти 10 дней?
Но прежде сделаю небольшое объявление, я переношу репозитории из гитхаб аккаунта организации в свой личный гитхаб аккаунт. Бродкастер и шаблон, соответственно. На формы пока забил, ими не занимаюсь, пусть там лежат.
Кстати о шаблонах. Остальные шаблоны были удалены, чтобы не создавать путаницы. Кто использовал, мигрируем))
Кстати, эти 10 дней я знакомился с SQLAlchemy и докинул её в темплейт по всем канонам (с тишкиной мидлварью), не забыл и о мидлвари, которая чат и юзера в хендлер пробрасывала.
Кроме шаблона и алхимии я также занимал бродкастером. Он едва ли не полностью был переписан недавно и сейчас тестируется и вылизывается. Актуальную версию вы можете увидеть в Dev ветке. Примеры уже обновил 😄
Думаю эта версия станет 0.1.
Был добавлен один класс, который управляет всеми рассылками. Инстанс этого класса на проект должен быть лишь один. Также были добавлены хранилища, в которых будут лежать данные о рассылках и сами рассылки. Пока только MemoryStorage, в будущем добавит RedisStorage, а MemoryStorage будет делать дамп в файл во время остановки (метод будет нужно вызвать в on_shutdown бота). Но все планы... Очередь уже добавлена и пользователей можно в конце рассылки докидывать, возможно будет предоставляться какая-то мидлварь, которая будет новых пользователей закидывать в активные рассылки, а удаленных из нее уделяло, чтобы они ничего не упустили 😄, но посмотрим...
#Рассылка #Шаблон #ГитХаб #Организация #Планы
#Broadcaster #Template #GitHub #Organisation #Plans
Но прежде сделаю небольшое объявление, я переношу репозитории из гитхаб аккаунта организации в свой личный гитхаб аккаунт. Бродкастер и шаблон, соответственно. На формы пока забил, ими не занимаюсь, пусть там лежат.
Кстати о шаблонах. Остальные шаблоны были удалены, чтобы не создавать путаницы. Кто использовал, мигрируем))
Кстати, эти 10 дней я знакомился с SQLAlchemy и докинул её в темплейт по всем канонам (с тишкиной мидлварью), не забыл и о мидлвари, которая чат и юзера в хендлер пробрасывала.
Кроме шаблона и алхимии я также занимал бродкастером. Он едва ли не полностью был переписан недавно и сейчас тестируется и вылизывается. Актуальную версию вы можете увидеть в Dev ветке. Примеры уже обновил 😄
Думаю эта версия станет 0.1.
Был добавлен один класс, который управляет всеми рассылками. Инстанс этого класса на проект должен быть лишь один. Также были добавлены хранилища, в которых будут лежать данные о рассылках и сами рассылки. Пока только MemoryStorage, в будущем добавит RedisStorage, а MemoryStorage будет делать дамп в файл во время остановки (метод будет нужно вызвать в on_shutdown бота). Но все планы... Очередь уже добавлена и пользователей можно в конце рассылки докидывать, возможно будет предоставляться какая-то мидлварь, которая будет новых пользователей закидывать в активные рассылки, а удаленных из нее уделяло, чтобы они ничего не упустили 😄, но посмотрим...
#Рассылка #Шаблон #ГитХаб #Организация #Планы
#Broadcaster #Template #GitHub #Organisation #Plans
Пока я тут отмечаю День рождения, советую глянуть уже довольно старый видос от Диджитализируй! про базы данных. Во время выхода он был мне не так полезен, как сейчас, поэтому тогда я его пропустил. Все подробно и красиво. Посмотреть, как работают с базой Postgres люди с бо́льшим опытом было интересно. Работа идёт через cli, а не какие-нибудь GUI утилиты, что я также отношу к плюсам. Приложу описание видоса, чтобы вы понимали, о чем будет идти речь и будет ли оно вам полезно.
#Полезное
#Useful
#Полезное
#Useful
Чтож... Время делиться с вами прекрасными новостями. Наушники стали первым относительно дорогим товаром, купленным в интернете, так ещё и из Китая. И вот у нас сюрпризы:
Не забываем, что без уплаты пошлины в Беларуси допускается получать неограниченное количество посылок. Однако за календарный месяц в сумме можно набрать на 200 евро и 31 кг, но при этом стоимость РАЗОВОЙ Вашей посылки не должна быть выше 22 евро и весом не более 10 кг (цена доставки не учитывается). В противном случае пошлина будет равняться 15% от цены превышения за товар или 2 евро за каждый килограмм посылки при её весе выше нормы. Да, ещё плюс сбор на таможне составит 5 евро.
Не забываем, что без уплаты пошлины в Беларуси допускается получать неограниченное количество посылок. Однако за календарный месяц в сумме можно набрать на 200 евро и 31 кг, но при этом стоимость РАЗОВОЙ Вашей посылки не должна быть выше 22 евро и весом не более 10 кг (цена доставки не учитывается). В противном случае пошлина будет равняться 15% от цены превышения за товар или 2 евро за каждый килограмм посылки при её весе выше нормы. Да, ещё плюс сбор на таможне составит 5 евро.
Уметь работать с терминалом очень важно, поэтому вот вам репозиторий с набором стильным, модных, молодёжных утилит для *unix
https://github.com/ibraheemdev/modern-unix
#Полезное
#Useful
https://github.com/ibraheemdev/modern-unix
#Полезное
#Useful
GitHub
GitHub - ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands.
A collection of modern/faster/saner alternatives to common unix commands. - ibraheemdev/modern-unix
Я очень люблю читать исходники библиотек. Причиной тому является факт, обычно библиотеки пишут более прошаренные ребята, нежели сам я (за редким исключением). Так как я непосредственно связан с aiogram, а там выходит третья версия, я решил покопаться в исходниках аиограма. Про интересные плюшки третьей версии, как того, что можно использовать в своих личных проектах, так и того, что нового в аиограме, я решил написать постик. Думаю многим это может показаться интересным и полезным, а некоторым может сэкономить время.
В первую очередь, что бросается в глаза — проделана огромная работа над type hint'ами. Теперь в аиограме используется mypy, и пара моих заметок связаны именно с этим:
if TYPE_CHECKING: — Удобно для решения цикличных импортов [Из документации mypy]
Файл py.typed — поддержка проверки типов пакета [PEP 561]
Занимательным мне показалось также следующее:
@dataclass(frozen=True) — Создание Read-Only датакласса [Из документации python]. Оно подтолкнуло меня на мысль, что было бы круто это использовать, в случае с конфигами, из тишкиного темплейта. Тогда можно было бы конфиг держать глобалом.
loggers.py — все логгеры теперь в одном файле. В случае с аиограмом — это отличное решение. Теперь видно, какие в нем есть логеры и что, а случае чего, отключать. Однако использовать ли это в приложениях — я пока для себя не решил. Все же мне кажется классический логгер в начале файла лучше подойдёт в случаях, когда вы делаете не библиотеку.
Кто задумывался о кешировании, наверняка в процессе гугления натыкался на lru_cache. Для асинхронных функций есть отдельная сторонняя библиотека, которую и используют разработчики в aiogram
Была переделана отправка запросов к апи телеграм. Методы апи теперь — классы, которые вызывает класс сессии. И это круто со стороны масштабируемости. Говоря о сессии, в issues аиограма висит создание сесии на httpx. Возможно в будущем каждый сможет спользовать то, что ему ближе, и, наверное, не тащить лишних зависимостей в проект.
Теперь к вещам, которые непосредственно коснутся разработки ботов на аиограме.
В аиограме третьей версии будет значительно меньше стандартных фильтров. Причиной этому стала библиотека magic_filter, которую запихнули в аиограм по самые гланды, конечно же добавив в зависимости. Кстати говоря, в третьем аиограме для работы с пакетами и сборки библиотеки используется poetry.
Раньше все использовали функции из модуля utils.markdown, в котором была мешанина из функций генерации как маркдауна, так и html'я, теперь же их разделили и разнесли по разным местам, добавив в __init__.py библиотеки.
Одним из самых лучших решений была переработка мидлварей. Есть два типа мидлварей: request middleware и Outer middleware. Outer мидлвари очень напоминают мидлвари из aiohttp, но это только плюс. Новые мидлвари сделали аиограм ещё более гибким и масштабируемым, а порог входа в библиотеку для разработчиков на aiohttp ещё ниже. На новых мидлварях уже реализованы куски логики, которые раньше намертво были вшиты в диспатчер, но о них позже. Вместо пре процессов, пост процессов и прочего, мидлварь теперь должна в любом месте вызывать хендлер, передавая туда собственно ивент и дату. Я очень боюсь дать дизинфу по мидлварям, поэтому подробнее о мидлварях вы можете почитать в доке aiogram-а.
На мидлварях теперь контекстные переменные, стейты и обработчики ошибок
Была переработала машина состояний. Самое интересное нововведение — FSMStrategy. То, что позволит задавать состояние пользователю в чате, всему чату или пользователю во всех чатах.
#Полезное, #Аиограм, #Боты
#Userful, #Aiogram, #Bots
В первую очередь, что бросается в глаза — проделана огромная работа над type hint'ами. Теперь в аиограме используется mypy, и пара моих заметок связаны именно с этим:
if TYPE_CHECKING: — Удобно для решения цикличных импортов [Из документации mypy]
Файл py.typed — поддержка проверки типов пакета [PEP 561]
Занимательным мне показалось также следующее:
@dataclass(frozen=True) — Создание Read-Only датакласса [Из документации python]. Оно подтолкнуло меня на мысль, что было бы круто это использовать, в случае с конфигами, из тишкиного темплейта. Тогда можно было бы конфиг держать глобалом.
loggers.py — все логгеры теперь в одном файле. В случае с аиограмом — это отличное решение. Теперь видно, какие в нем есть логеры и что, а случае чего, отключать. Однако использовать ли это в приложениях — я пока для себя не решил. Все же мне кажется классический логгер в начале файла лучше подойдёт в случаях, когда вы делаете не библиотеку.
Кто задумывался о кешировании, наверняка в процессе гугления натыкался на lru_cache. Для асинхронных функций есть отдельная сторонняя библиотека, которую и используют разработчики в aiogram
Была переделана отправка запросов к апи телеграм. Методы апи теперь — классы, которые вызывает класс сессии. И это круто со стороны масштабируемости. Говоря о сессии, в issues аиограма висит создание сесии на httpx. Возможно в будущем каждый сможет спользовать то, что ему ближе, и, наверное, не тащить лишних зависимостей в проект.
Теперь к вещам, которые непосредственно коснутся разработки ботов на аиограме.
В аиограме третьей версии будет значительно меньше стандартных фильтров. Причиной этому стала библиотека magic_filter, которую запихнули в аиограм по самые гланды, конечно же добавив в зависимости. Кстати говоря, в третьем аиограме для работы с пакетами и сборки библиотеки используется poetry.
Раньше все использовали функции из модуля utils.markdown, в котором была мешанина из функций генерации как маркдауна, так и html'я, теперь же их разделили и разнесли по разным местам, добавив в __init__.py библиотеки.
Одним из самых лучших решений была переработка мидлварей. Есть два типа мидлварей: request middleware и Outer middleware. Outer мидлвари очень напоминают мидлвари из aiohttp, но это только плюс. Новые мидлвари сделали аиограм ещё более гибким и масштабируемым, а порог входа в библиотеку для разработчиков на aiohttp ещё ниже. На новых мидлварях уже реализованы куски логики, которые раньше намертво были вшиты в диспатчер, но о них позже. Вместо пре процессов, пост процессов и прочего, мидлварь теперь должна в любом месте вызывать хендлер, передавая туда собственно ивент и дату. Я очень боюсь дать дизинфу по мидлварям, поэтому подробнее о мидлварях вы можете почитать в доке aiogram-а.
На мидлварях теперь контекстные переменные, стейты и обработчики ошибок
Была переработала машина состояний. Самое интересное нововведение — FSMStrategy. То, что позволит задавать состояние пользователю в чате, всему чату или пользователю во всех чатах.
#Полезное, #Аиограм, #Боты
#Userful, #Aiogram, #Bots
В догонку к посту про нововведения в третий аиограм. Ещё посмотрел хендлеры. Они также теперь могут представлять из себя класс. Все знают, что хендлеры просматриваются в порядке регистрации (есть в роутере список зарегистрированных хендлеров, по которым идёт итерация и проверка фильтров). В третьем аиограме можно будет указывать индекс во время регистрации хендлера. Таким образом хендлер установится в списке через insert на определенный индекс, а остальные хендлеры, стоящие на месте данного индекса и выше, сдвинутся на 1 вправо
#Полезное, #Аиограм, #Боты
#Useful, #Aiogram, #Bots
#Полезное, #Аиограм, #Боты
#Useful, #Aiogram, #Bots
Питон очень красивый, краткий, лаконичный язык, позволяющий писать код красиво. У Диджитализируй вышел новый видеоролик об "особенностях" питона, позволяющих сократить количество кода в разы. Спешу с вами поделиться
https://youtu.be/LkHCy5JZtsA
#Полезное
#Useful
https://youtu.be/LkHCy5JZtsA
#Полезное
#Useful
YouTube
12 красивых ОДНОСТРОЧНЫХ конструкций на Python — сделай свой код конфеткой!
Мой курс «Хардкорная веб-разработка» — https://course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me
Сказать спасибо за это видео можно здесь — https://boosty.to/digitalize.team…
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me
Сказать спасибо за это видео можно здесь — https://boosty.to/digitalize.team…
Forzend's channel
Я очень люблю читать исходники библиотек. Причиной тому является факт, обычно библиотеки пишут более прошаренные ребята, нежели сам я (за редким исключением). Так как я непосредственно связан с aiogram, а там выходит третья версия, я решил покопаться в исходниках…
Это уже выливается в целую серию постов, но хочу также добавить, что в третьем аиограме можно засунуть в запуск все, что угодно, и оно будет везде, где угодно.
Если конкретнее. Например бот на поллинге. В функции Полинг после аргументов идут
#Полезное #Аиограм #Боты
#Useful #Aiogram #Bots
Если конкретнее. Например бот на поллинге. В функции Полинг после аргументов идут
**kwargs
, все, что вы передадите туда, в итоге будет доступно в мидлварях, хендлерах и фильтрах. Так можно очень удобно передавать конфиг. Отличная замена mapped боту и EnvironmentMiddleware из второй версии.#Полезное #Аиограм #Боты
#Useful #Aiogram #Bots
Aiogram становится все популярнее и популярнее. Несколько лет комьюнити питалось обещаниями выхода третьей версии фреймворка. Это наконец произошло. Но не смотря на то, что уже вышла новая версия, вполне пригодная для использования, люди все равно не переходят на неё. Причины этому две. Одна из них, более веская, — альфа релиз. Местами библиотека может быть нестабильна и могут возникнуть проблемы в проектах. Вторая же причина — нежелание переучиваться и отсутствие источников знаний, где можно было бы изучить нововведения.
По поводу первой проблемы: аиограм полностью готов для работы, в нем есть все необходимое, но он находится в альфе потому, что ещё не всё баги могли быть найдены. Чтобы поспособствовать выходу стабильного релиза я призываю к использованию третьего аиограма в своих проектах, к разработке open source решений на третьем аиограме, а также разборка исходников библиотеки. Конечно, все это должно сопровождаться баг репортом.
Что говорить о второй проблеме, я хочу посоветовать вам один open source проект на третьем аиограме от @evgfilim1, который я настоятельно рекомендую к разбору. Этот проект может вам послужить отличным примером для перехода от второй к третьей версии фреймворка. Мне особенно нравится cli в этом проекте. Что касается аиограма, советую обратить внимание на мидлвари и фильтры, а также систему роутинга
#Полезное #Аиограм #Боты
#Usefull #Aiogram #Bots
По поводу первой проблемы: аиограм полностью готов для работы, в нем есть все необходимое, но он находится в альфе потому, что ещё не всё баги могли быть найдены. Чтобы поспособствовать выходу стабильного релиза я призываю к использованию третьего аиограма в своих проектах, к разработке open source решений на третьем аиограме, а также разборка исходников библиотеки. Конечно, все это должно сопровождаться баг репортом.
Что говорить о второй проблеме, я хочу посоветовать вам один open source проект на третьем аиограме от @evgfilim1, который я настоятельно рекомендую к разбору. Этот проект может вам послужить отличным примером для перехода от второй к третьей версии фреймворка. Мне особенно нравится cli в этом проекте. Что касается аиограма, советую обратить внимание на мидлвари и фильтры, а также систему роутинга
#Полезное #Аиограм #Боты
#Usefull #Aiogram #Bots
❤1
youtu.be_IwjaNmsZQkc
<unknown>
После работы голову нужно правильно разгружать, иначе так недолго сойти с ума 🤕
Я предпочитаю прогулки. В одиночестве, с наушниками, когда ты останешься наедине с собой и можешь подумать о том, что тебя действительно беспокоит.
Обычно я гуляю под музыку, но недавно вспомнил о snailkick и его формате "Головные Мюсли", и решил, что было бы прикольно слушать это в формате подкастов во время очередной прогулки.
Приятный голос, качественный звук, а также актуальные легкие темы, в которые не нужно вдумываться, дадут мозгу должную разгрузку. Отличный вариант, если просто гулять под музыку уже не вставляет. Решил поделиться с вами одним из таких "подкастов". Специально скачал, чтобы удобно было слушать в телеграме.
🔴 Оригинал на YouTube.
#Музыка
#Music
Я предпочитаю прогулки. В одиночестве, с наушниками, когда ты останешься наедине с собой и можешь подумать о том, что тебя действительно беспокоит.
Обычно я гуляю под музыку, но недавно вспомнил о snailkick и его формате "Головные Мюсли", и решил, что было бы прикольно слушать это в формате подкастов во время очередной прогулки.
Приятный голос, качественный звук, а также актуальные легкие темы, в которые не нужно вдумываться, дадут мозгу должную разгрузку. Отличный вариант, если просто гулять под музыку уже не вставляет. Решил поделиться с вами одним из таких "подкастов". Специально скачал, чтобы удобно было слушать в телеграме.
🔴 Оригинал на YouTube.
#Музыка
#Music
Не упускаем видосы от "Диджитализируй!", особенно когда речь идёт о работе с терминалом и линуксом. Только что вышел новый видос. Бегом смотреть 😄
#Полезное #Linux
#Useful #Линукс
#Полезное #Linux
#Useful #Линукс
YouTube
Как свернуть программу в консольном Linux? Работаем с процессами в Linux — jobs, fg, bg
Мой курс «Хардкорная веб-разработка» — https://course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me
Можно ли свернуть программу в консоли Linux аналогично тому, как мы привыкли…
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me
Можно ли свернуть программу в консоли Linux аналогично тому, как мы привыкли…
Я потихоньку разбираюсь с FastAPI и мне стало безумно интересно, что из перечисленного вам нравится больше всего
Anonymous Poll
14%
Aiohttp
1%
Bottle
31%
Django
28%
FastAPI
17%
Flask
0%
Pyromid
1%
Starlette
2%
Tornado
1%
web2py
7%
Другой (в комментариях)
Появилось у меня на днях желание почитать хабр. С телефона. В туалете. Ну все по классике. Не один ведь я самые важные знания приобретаю в туалете? 😅
Но не об этом. Я больше предпочитаю использовать приложения, нежели странички в google. Так, как мне кажется, куда удобнее.
Но официального приложения хабра в play store я не нашел...
Сидел и мирился некоторое время с назойливой строкой поиска, и вдруг нашел одну заманчивую кнопочку (обведённую на скриншоте). Как оказалось, в случае с хабром и группой некоторых других сайтов, можно "установить приложение" прямо из Гугла.
Это не полноценное приложение. Думаю многие знают суть его работы. Браузер под капотом, который отображает лишь один веб сайт. Но это удобнее, чем использовать браузер, как мне кажется. Поэтому для тех, кто с телефона все ещё читает хабр на сайте, советую.
Работает, к сожалению, не со всеми сайтами. Поэтому интересные сайты с этой фичей можете оставлять в комментариях.
#Полезное
#Useful
Но не об этом. Я больше предпочитаю использовать приложения, нежели странички в google. Так, как мне кажется, куда удобнее.
Но официального приложения хабра в play store я не нашел...
Сидел и мирился некоторое время с назойливой строкой поиска, и вдруг нашел одну заманчивую кнопочку (обведённую на скриншоте). Как оказалось, в случае с хабром и группой некоторых других сайтов, можно "установить приложение" прямо из Гугла.
Это не полноценное приложение. Думаю многие знают суть его работы. Браузер под капотом, который отображает лишь один веб сайт. Но это удобнее, чем использовать браузер, как мне кажется. Поэтому для тех, кто с телефона все ещё читает хабр на сайте, советую.
Работает, к сожалению, не со всеми сайтами. Поэтому интересные сайты с этой фичей можете оставлять в комментариях.
#Полезное
#Useful
Телеграм тестирует новые квизы 😍
Telegram
Telegram Info
Telegram протестирует новый режим викторин
Сегодня, 9 августа, в 21:00 по МСК Telegram начнёт тестировать новый режим викторин в quiz.directory. Ссылку опубликуют в приватном канале разработчиков мессенджера.
Принять участие может любой, однако Telegram…
Сегодня, 9 августа, в 21:00 по МСК Telegram начнёт тестировать новый режим викторин в quiz.directory. Ссылку опубликуют в приватном канале разработчиков мессенджера.
Принять участие может любой, однако Telegram…
Forwarded from Vibecoding Haven (BotfatherDEV)
🔬Интерактивный просмотр исходников GitHub
Недавно со мной поделились одним крутым сервисом, где можно копаться с исходниках аиограма (а в целом, и любого другого репозитория).
Для чего он нужен? Да вот как минимум неплохая подсветка синтаксиса, а еще можно (как в Pycharm) зажав CTRL нажать на функцию/переменную и пройти к ее источнику, или просто ткнув в переменную — подсветятся места, где она встречается.
Очень удобно, если нет возможности открыть тяжеловесный редактор кода)
Аиограм тут: https://github1s.com/aiogram/aiogram/
#полезное
Недавно со мной поделились одним крутым сервисом, где можно копаться с исходниках аиограма (а в целом, и любого другого репозитория).
Для чего он нужен? Да вот как минимум неплохая подсветка синтаксиса, а еще можно (как в Pycharm) зажав CTRL нажать на функцию/переменную и пройти к ее источнику, или просто ткнув в переменную — подсветятся места, где она встречается.
Очень удобно, если нет возможности открыть тяжеловесный редактор кода)
Аиограм тут: https://github1s.com/aiogram/aiogram/
#полезное
Часто после учебы, когда желания работать нет, а просто плевать в потолок слишком скучно, хочется посмотреть что-нибудь близкое к программированию на ютубчике. Важно, чтобы контент не был очень напряженным или очень тупым. К сожалению тема не так популярна, поэтому хороших контентмейкеров очень мало. И не дай бог во время таких скитаний забрести на канал ХХ (тот, чье имя нельзя называть)...
Недавно я наткнулся на канал очень приятного седого дедули (надеюсь он не обидится). Мне нравится его подача. У него качественный приятный звук, качественный видеоряд. Хочу обратить ваше внимание на него.
Вот несколько видеороликов на его канале, которые показались мне интересными (видеоролики расположены в порядке выхода от самых новых, к самым старым):
Недавно я наткнулся на канал очень приятного седого дедули (надеюсь он не обидится). Мне нравится его подача. У него качественный приятный звук, качественный видеоряд. Хочу обратить ваше внимание на него.
Вот несколько видеороликов на его канале, которые показались мне интересными (видеоролики расположены в порядке выхода от самых новых, к самым старым):
•
Чего я не знал в 20 лет•
Каким программистам платят больше•
Когда JS быстрее языка C•
Что программисты делают на работе•
Почему одни программисты учатся быстрее других