💫 Закинул несколько небольших issues в Litestar. Если кто-то давно хотел попробовать в Open Source, но не знал с чего начать, то милости просим :)
https://github.com/litestar-org/litestar/issues/4401
https://github.com/litestar-org/litestar/issues/4400
https://github.com/litestar-org/litestar/issues/4399
А ещё есть сочнейший тг канал "Находки в опенсорс", там тоже интересно 😁
https://news.1rj.ru/str/opensource_findings_chat
https://github.com/litestar-org/litestar/issues/4401
https://github.com/litestar-org/litestar/issues/4400
https://github.com/litestar-org/litestar/issues/4399
А ещё есть сочнейший тг канал "Находки в опенсорс", там тоже интересно 😁
https://news.1rj.ru/str/opensource_findings_chat
GitHub
Bug: The LITESTAR_QUIET_CONSOLE environment variable is treated as a truthy string · Issue #4401 · litestar-org/litestar
Denoscription "0" or "false" behave like True. https://github.com/search?q=repo%3Alitestar-org%2Flitestar%20LITESTAR_QUIET_CONSOLE&type=code What to do: parse the boolean expl...
🔥5
Если есть любители gemini, то вас может заинтересовать Kilo
https://www.youtube.com/watch?v=q0fJwevyooU
https://www.youtube.com/watch?v=q0fJwevyooU
YouTube
Kilo Code — убийца Cursor? Бесплатная альтернатива с Gemini для PyCharm | 1000 запросов в сутки
В этом видео мы покажем, как использовать Kilo Code вместе с Gemini CLI. Он может вам бесплатно заменить Cursor IDE, Kiro IDE. Это отличный AI редактор, который можно встроить в Pycharm.
В этом видео будет подробный гайд по установке и подключению, протестируем…
В этом видео будет подробный гайд по установке и подключению, протестируем…
🥰4👍1
Django 6.0: Ключевые функции, критические изменения https://habr.com/p/954390/
Habr
Django 6.0: Ключевые функции, критические изменения
В Django 6.0 есть кое-что для вас. Давайте рассмотрим самые важные новые функции и изменения, о которых вам нужно знать. Сообщество Django представляет множество мощных нововведений, а также некоторые...
❤6
Forwarded from Находки в опенсорсе
PEP 810: Explicit lazy imports
На обсуждение вышел новый PEP, который предлагает добавить в Python 3.15 новый вид импортов.
https://peps.python.org/pep-0810/
Как будет работать?
Импорты не будут подгружаться до момента первого обращения к объекту.
Зачем?
- Быстрее загружать модули
- Позволит убрать много импортов из функций / методов
- Позволит убрать
- Позволит решать циклические импорты
- Убирает необходимость в
Детали реализации
Планируется добавить:
- Функцию
- Специальный атрибут на уровне модуля
-
-
-
- Байткод
- Ошибки в именах модулей тоже будут ленивыми https://peps.python.org/pep-0810/#reification
Из забавного:
Реализация: https://github.com/LazyImportsCabal/cpython/tree/lazy
Обсуждение: как вам?
Бонус: меня тут в комментах спрашивают, куда я пропал. Я пропал в опенсорсе, пилю
https://github.com/wemake-services/django-modern-rest
| Поддержать | YouTube | GitHub | Чат |
На обсуждение вышел новый PEP, который предлагает добавить в Python 3.15 новый вид импортов.
https://peps.python.org/pep-0810/
lazy import json
lazy from json import dumps
Как будет работать?
Импорты не будут подгружаться до момента первого обращения к объекту.
import sys
lazy import json
print('json' in sys.modules) # Модуля еще нет
# Загрузка начинается вот тут:
result = json.dumps({"hello": "world"})
print('json' in sys.modules) # Теперь он загружен
Зачем?
- Быстрее загружать модули
- Позволит убрать много импортов из функций / методов
- Позволит убрать
if TYPE_CHECKING: import some_module, было множество предложений по добавлению import type конструкции, пример: https://discuss.python.org/t/type-only-imports/96755- Позволит решать циклические импорты
- Убирает необходимость в
LazyLoader и страшных вещей вроде https://scientific-python.org/specs/spec-0001Детали реализации
Планируется добавить:
- Функцию
__lazy_import__ (аналог __import__ для импорта )- Специальный атрибут на уровне модуля
__lazy_modules__, где будут храниться ленивые импорты текущего модуля-
types.LazyImportType как тип нового "ленивого" модуля (аналог `types.ModuleType`)-
sys.lazy_modules для списка ленивых модулей глобально-
sys.set_lazy_imports_filter для глобальных настроек импортов, что? 🤯- Байткод
IMPORT_NAME получит флаг, является ли импорт ленивым- Ошибки в именах модулей тоже будут ленивыми https://peps.python.org/pep-0810/#reification
Из забавного:
import * не будет доступен в lazy режиме.
# SyntaxError: lazy from ... import * is not allowed
lazy from json import *
Реализация: https://github.com/LazyImportsCabal/cpython/tree/lazy
Обсуждение: как вам?
Бонус: меня тут в комментах спрашивают, куда я пропал. Я пропал в опенсорсе, пилю
django-modern-rest. Простую и удобную библиотеку для REST API в Django. Пока на стадии pre-alpha, но уже скоро будет первый релиз. Можно уже ставить ⭐, чтобы потом всем говорить, что первыми узнали про новую модную штуку!https://github.com/wemake-services/django-modern-rest
| Поддержать | YouTube | GitHub | Чат |
Python Enhancement Proposals (PEPs)
PEP 810 – Explicit lazy imports | peps.python.org
This PEP introduces syntax for lazy imports as an explicit language feature:
🔥9🤮1💩1
Постоянная рубрика МОИ КОРЕША
Недавно мой коллега из Самолета Лев сделал свой pre-commit-hook - shrimport (строго open source, как мы любим).
Этот хук позволяет прогнать Python-проект и привести относительные пути к абсолютным (по правилам PEP).
Лев уже апробировал инструмент и поправил импорты в django и django-mongodb-backend.
Пользуйтесь на здоровье. А еще можно накидать звездочек репозиторию, автору будет приятно 😉
https://github.com/lyova24/shrimport
Недавно мой коллега из Самолета Лев сделал свой pre-commit-hook - shrimport (строго open source, как мы любим).
Этот хук позволяет прогнать Python-проект и привести относительные пути к абсолютным (по правилам PEP).
Лев уже апробировал инструмент и поправил импорты в django и django-mongodb-backend.
Пользуйтесь на здоровье. А еще можно накидать звездочек репозиторию, автору будет приятно 😉
https://github.com/lyova24/shrimport
🔥13
🌟 💫 Clean Architecture Litestar Project Template
Не так давно я выкладывал cookiecutter шаблон FastAPI-проекта в стиле Clean Architecture. Не без шероховатостей, но благодаря вашему фидбеку удалось исправить большинство ошибок и причесать проект (но он будет допиливаться и дальше!).
Поэтому теперь, как и обещал, представляю вашему вниманию аналогичный шаблон только уже с Litestar вместо FastAPI. В часте Litestar я намерено ограничился только функционалом HTTP-фреймворка
https://github.com/Peopl3s/clean-architecture-litestar-project-template
P.S. Буду рад любому фидбеку, особенно фидбеку, который поможет улучшить шаблон :)
Не так давно я выкладывал cookiecutter шаблон FastAPI-проекта в стиле Clean Architecture. Не без шероховатостей, но благодаря вашему фидбеку удалось исправить большинство ошибок и причесать проект (но он будет допиливаться и дальше!).
Поэтому теперь, как и обещал, представляю вашему вниманию аналогичный шаблон только уже с Litestar вместо FastAPI. В часте Litestar я намерено ограничился только функционалом HTTP-фреймворка
https://github.com/Peopl3s/clean-architecture-litestar-project-template
P.S. Буду рад любому фидбеку, особенно фидбеку, который поможет улучшить шаблон :)
🔥4👍3🤩2
Там Никита Соболев (гений, миллиардер, филантроп, кор контрибьютер CPython) готовит альтернативу DRF - Django Modern Rest
Из более менее достойных замен DRF могу вспомнить разве что Django-Ninja да и то там всё не так гладко. Поэтому у DMR есть все шансы выстрелить - асинк есть, слои есть, валидация есть. Проект перерабатывает опыт DRF, Litestar, Django Ninja и улучшает его + привносит собственные идеи и концепции.
Проект в активной фазе разработки, поэтому если хотите помочь и вписать себя в историю - welcome :_)
https://github.com/wemake-services/django-modern-rest
Из более менее достойных замен DRF могу вспомнить разве что Django-Ninja да и то там всё не так гладко. Поэтому у DMR есть все шансы выстрелить - асинк есть, слои есть, валидация есть. Проект перерабатывает опыт DRF, Litestar, Django Ninja и улучшает его + привносит собственные идеи и концепции.
Проект в активной фазе разработки, поэтому если хотите помочь и вписать себя в историю - welcome :_)
https://github.com/wemake-services/django-modern-rest
🥰5❤4😁1🤮1
Тут еще канальчик есть https://news.1rj.ru/str/opensource_findings_python
Там публикуют issues в разных репозиториях (от litestar до cpython). Можно забирать и контрибутить в open source, улучшать проекты, которыми пользуются сотни тысяч человек)
По django-modern-rest тоже есть (будут)
Там публикуют issues в разных репозиториях (от litestar до cpython). Можно забирать и контрибутить в open source, улучшать проекты, которыми пользуются сотни тысяч человек)
По django-modern-rest тоже есть (будут)
Telegram
Находки в опенсорсе: Python
Легкие задачки в опенсорсе из мира Python
Чат: @opensource_findings_chat
Чат: @opensource_findings_chat
🔥5
Я недавно рассказывал про django-modern-rest. Появилось небольшое issues, которое отлично подходит для входа новичкам. Мб кому-то будет интересно
https://github.com/wemake-services/django-modern-rest/issues/107
https://github.com/wemake-services/django-modern-rest/issues/107
GitHub
GitHub - wemake-services/django-modern-rest: Modern REST framework for Django with types and async support!
Modern REST framework for Django with types and async support! - wemake-services/django-modern-rest
❤3👍3
Forwarded from Находки в опенсорсе
Зачем нужен новый REST API для Django?
Последний месяц я крайне увлечен созданием https://github.com/wemake-services/django-modern-rest
(Кстати, у нас уже >200 звезд и 26 контрибьюторов при 0 релизов)
Ключевой вопрос – зачем? Что будет нового?
Во-первых, я крайне сильно люблю Django. Основная причина – под него есть буквально любые библиотеки. Все то, что в FastAPI нужно героически писать руками – в джанге уже давно есть и работает.
Но, есть несколько основных причин, почему люди думают, что не любят джангу:
1. DRF, тут без лишних слов – он ужасен. Нет типизации, нет async, очень сложно работать с ним в сложных случаях
2. Многие считают, что джанга - сложная. Однако, она как FastAPI или Litestar может спокойно уместиться в один файл: https://django-modern-rest.readthedocs.io/en/latest/pages/micro-framework.html
3. Есть критика за архитектуру: тут нечего особо даже комментировать. На любом фреймворке можно писать хорошо, на любом можно писать плохо. Слой фреймворка очень тонкий
4. Медленный. А вот тут остановимся подробнее.
На скринах выше можно сравнить, что с
Во-вторых, Django на длительный срок был в плену DRF. Который морально устарел еще в середине десятых.
Потом появилась
Вот такие проблемы мы решаем.
Одной строкой:
- Супер строгая OpenAPI схема и валидация при разработке, что мы ее соблюдаем
- Полная типизация всего
- Нормальный способ создания АПИ, без god-functions a-la FastAPI
-
- Быстро:
- Пидантик,
- Полная поддержка всего существующего в Django. От декораторов до миддлварь (с полной валидацией и OpenAPI схемой!)
- OpenAPI схема из коробки
- Удобное тестирование с polyfactory
- property-based тесты вашего АПИ одной командой благодаря schemathesis
Что еще будет:
- RSGI (да, на #rust скорее всего) под granian, в теории можем побить FastAPI после такого
- SSE с автоматической OpenAPI спекой и умной валидацией схемы
- JWT или любая другая аутентификация
- Какие-то части (скорее всего валидацию) мы компильнем cython, чтобы было еще быстрее
Modern? Modern!
Осталось дождаться. Релиз скоро!
И еще скоро будут несколько новых видео.
Мы регулярно постим задачки в @opensource_findings_python, так что можно нам помочь.
А если кто хочет мне закинуть на развитие опенсорса (за написание 32500 строк кода за 2 недели), то мой бусти открыт: https://boosty.to/sobolevn
Ну и звезды можно ставить, конечно же. Там посмотрите, какие люди нас уже советуют.
Большое спасибо Александру, Алексею, Роману, Максиму и всем остальным за неоценимую помощь. Пацаны, без вас никак! Лучшее сообщество!
Обсуждение: а чего бы вам хотелось в modern rest фреймворке? Чего сильно не хватает сейчас?
Последний месяц я крайне увлечен созданием https://github.com/wemake-services/django-modern-rest
(Кстати, у нас уже >200 звезд и 26 контрибьюторов при 0 релизов)
Ключевой вопрос – зачем? Что будет нового?
Во-первых, я крайне сильно люблю Django. Основная причина – под него есть буквально любые библиотеки. Все то, что в FastAPI нужно героически писать руками – в джанге уже давно есть и работает.
Но, есть несколько основных причин, почему люди думают, что не любят джангу:
1. DRF, тут без лишних слов – он ужасен. Нет типизации, нет async, очень сложно работать с ним в сложных случаях
2. Многие считают, что джанга - сложная. Однако, она как FastAPI или Litestar может спокойно уместиться в один файл: https://django-modern-rest.readthedocs.io/en/latest/pages/micro-framework.html
3. Есть критика за архитектуру: тут нечего особо даже комментировать. На любом фреймворке можно писать хорошо, на любом можно писать плохо. Слой фреймворка очень тонкий
4. Медленный. А вот тут остановимся подробнее.
На скринах выше можно сравнить, что с
django-modern-rest, без нескольких будущих оптимизаций (привет cython и rust!), голая джанга начинает выглядеть не так уж и медленнее FastAPI: бенчи.Во-вторых, Django на длительный срок был в плену DRF. Который морально устарел еще в середине десятых.
Потом появилась
django-ninja, которая хоть и намного лучше, но все равно не решает главную задачу: интеграция с существующими тулами. Конечно, если затащить FastAPI дизайн в чужой мир, то ничего не будет нормально работать 🌚️️Вот такие проблемы мы решаем.
Одной строкой:
- Супер строгая OpenAPI схема и валидация при разработке, что мы ее соблюдаем
- Полная типизация всего
- Нормальный способ создания АПИ, без god-functions a-la FastAPI
-
async без sync_to_async- Быстро:
msgspec для парсинга json (самый быстрый способ в питоне), практически 0 работы в рантайме (все делаем при импорте), оптимизации роутера (быстрее дефолтного в 51 раз)- Пидантик,
msgspec, или любой другой способ выражать модели. Хоть adaptix- Полная поддержка всего существующего в Django. От декораторов до миддлварь (с полной валидацией и OpenAPI схемой!)
- OpenAPI схема из коробки
- Удобное тестирование с polyfactory
- property-based тесты вашего АПИ одной командой благодаря schemathesis
Что еще будет:
- RSGI (да, на #rust скорее всего) под granian, в теории можем побить FastAPI после такого
- SSE с автоматической OpenAPI спекой и умной валидацией схемы
- JWT или любая другая аутентификация
- Какие-то части (скорее всего валидацию) мы компильнем cython, чтобы было еще быстрее
Modern? Modern!
Осталось дождаться. Релиз скоро!
И еще скоро будут несколько новых видео.
Мы регулярно постим задачки в @opensource_findings_python, так что можно нам помочь.
А если кто хочет мне закинуть на развитие опенсорса (за написание 32500 строк кода за 2 недели), то мой бусти открыт: https://boosty.to/sobolevn
Ну и звезды можно ставить, конечно же. Там посмотрите, какие люди нас уже советуют.
Большое спасибо Александру, Алексею, Роману, Максиму и всем остальным за неоценимую помощь. Пацаны, без вас никак! Лучшее сообщество!
Обсуждение: а чего бы вам хотелось в modern rest фреймворке? Чего сильно не хватает сейчас?
👍10❤5🔥2
Есть мнение, что хорошего качественного контента для мидл и выше не существует. Он существует, просто его не так просто найти.
Делюсь подобным кладезем знаний от автора dishka - https://news.1rj.ru/str/advice17
Делюсь подобным кладезем знаний от автора dishka - https://news.1rj.ru/str/advice17
Telegram
Советы разработчикам (python и не только)
Советы для разработчиков ПО от @Tishka17
Поддержать материально https://www.tinkoff.ru/cf/2NkdXaljivI
Programming, python, software architecture и все такое
Поддержать материально https://www.tinkoff.ru/cf/2NkdXaljivI
Programming, python, software architecture и все такое
🔥10
А помните раньше было модно делиться папками-подборками разных тг-каналов? Тренд дошел и до меня (спустя 52 года)
Поэтому делюсь свой подборкой тг-каналов. Здесь много разного - от каналов с полезной инфой для прокачки до чатов и мемов. Залетайте, мб найдете для себя что-то интересное
https://news.1rj.ru/str/addlist/akUhw65HHcUxZjFi
Поэтому делюсь свой подборкой тг-каналов. Здесь много разного - от каналов с полезной инфой для прокачки до чатов и мемов. Залетайте, мб найдете для себя что-то интересное
https://news.1rj.ru/str/addlist/akUhw65HHcUxZjFi
Telegram
Pulp Fiction
Максим Мельников invites you to add the folder “Pulp Fiction”, which includes 21 chats.
👍6❤1🔥1💩1
Раскрываю тайное знание - без мам пап кредитов, смс и регистрации
https://www.youtube.com/watch?v=53n3bxYTQT0
https://www.youtube.com/watch?v=53n3bxYTQT0
YouTube
ТЫ БУДЕШЬ УСПЕШНЕЕ 99% ЛЮДЕЙ ЕСЛИ НАУЧИШЬСЯ ГОВОРИТЬ РТОМ
Почему 99% людей не добиваются успеха в карьере и отношениях? Они не умеют одной простой вещи — говорить ртом. В этом видео я объясняю, почему умение ясно проговаривать свои мысли — самый недооцененный навык современного человека.
Мы обсудим, почему люди…
Мы обсудим, почему люди…
🔥6