uz
Feedback
Moscow Python

Moscow Python

Kanalga Telegram’da o‘tish

Канал Python.ru и Moscow Python. Новости сообщества, события, статьи, интервью. Чат: @moscowpythonconf

Ko'proq ko'rsatish
2 026
Obunachilar
Ma'lumot yo'q24 soatlar
+17 kunlar
+1130 kunlar
Postlar arxiv
Большая сходка любителей настолок, питона и пива в Москве! Где? Ресторан Paulaner на Полянке: https://yandex.ru/maps/org/paulaner/44880575916/?ll=37.620383%2C55.734745&z=17.97 Когда? Четверг 24 октября с 18:30 и до закрытия Что в планах? - Игра в https://github.com/sobolevn/ship-it-boardgame 0.0.19й версии - Разговоры про программирование Ждем всех :) Отмечайтесь в опросе, если придете: https://t.me/ship_it_boardgame/2822

Напоминаем, что уже через неделю - 21-го октября состоится наш 95-й митап, который пройдёт в Сбере. Места пока есть. :) По традиции нас ожидает 3 доклада: - Макс Столпасов (X5 Tech, TeamLead). D в DDD — где D это доменная логика - Арсен Гумин (Сбер, Руководитель направления по исследованию данных) Model-as-a-service: с нуля до enterprise ready - Юлия Сухинина (АО «ГОЛЬФСТРИМ охранные системы» (МТС), Руководитель по развитию). Разработка ТГ Бота с ИИ модулем для автоматизации процесса контроля качества оформления документов Читайте подробности и регистрируйтесь тут: https://moscowdjango.timepad.ru/event/3054238/ Онлайн-трансляция пройдёт на https://moscowpython.ru Митап проходит при поддержке Geekfactor.io, Evrone, Сбера и Learn Python. Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker

Python Software Foundation и JetBrains запустили опрос python-разработчиков 2024. Опрос доступен в том числе на русском языке и результаты обещают тоже перевести. В этом году они хотят охватить больше народа, поэтому если у вас есть 10 минут свободного времени - заполните его. Я уже заполнил 🙂 https://pyfound.blogspot.com/2024/10/join-python-developers-survey-2024.html

Зарелизился python 3.13, кратенько перечислю самое интересное, а подробно обсудим на подкасте в первых числах ноября. Сначала самые интересные штуки, которые пока недоступны конечным пользователям: - Первый релиз с nogil (который теперь официально называется free-threaded). Доступен только если собрать интерпретатор со специальным ключом --disable-gil, но если очень хочется поиграться, то можно поставить 3.13.0rc3t с помощью pyenv. Производительность пока замерять рановато, потому что сам по себе питон в free-threaded режиме на 20% медленнее обычного из-за проблем с garbage collector-ом, мы с Никитой Соболевым довольно подробно в подкасте про это говорили, в 3.14 должны поправить, а для тестирования совместимости с библиотеками это пока не важно. - Новый copy-and-patch JIT-компилятор, который (сюрприз!) тоже по умолчанию выключен и требует сборки с ключом --enable-experimental-jit. На самом деле если его включить, то какой-то пользы для себя вы не увидите, так как для работы ему требуются "шаблоны", которые будут заменять куски байт-кода на машинный код, а их еще требуется написать. Собственно, его, как и nogil включили в релиз для того, чтобы можно было экспериментировать Это все выглядит очень интересно, но давайте перейдем к изменениям, которые можно пощупать и которые реально полезны: - Эксепшены в питоне, итак, были довольно дружелюбны (по сравнению с другими языками), но в последних версиях идет планомерная работа по их улучшению. В этот раз добавили выделение цветом в терминале и более понятное сообщение об ошибке в случае, когда в проекте есть файл, совпадающий по названию с модулем, который ты хочешь импортировать (пример - у меня в проекте есть файл django.py и я в другом файле пробую импортировать что-то из реальной джанги `from django import forms`) - Новый клевый repl с подсветкой, возможностью редактировать не только текущую строку, автоотступами, режимами просмотра истории (F2) и вставки (F3) и самое главное – с возможностью писать exit без скобочек 🙂 - Новые улучшения системы типов - дефолты (теперь не надо писать Generator[int, None, None] - можно просто Generator[int]`), возможность объявить атрибут TypedDict-а как `ReadOnly и TypeIs для более строгой проверки типов - glob("**") из pathlib теперь показывает файлы и папки рекурсивно (раньше показывал только папки), привели в соответствие с тем, как это реализовано в большинстве других инструментов, например ls ** Ну и еще всякое по мелочи. Релиз получился без каких-то больших изменений для тех, кто пишет на python, но с очень большим и интересным заделом на будущее.

Привет! Напоминаем, что завтра в 14:00 по мск обсудим новости сентября: 🟤перенос релиза 3.13 или настало время перестать использовать 3.8; 🟤Python Developers Survey 2023; 🟤большая дискуссия про uv в хвиторе. Когда: 4 октября в 14:00 (по мск). Где: онлайн и в записи на YouTube и RuTube. И да, у нас теперь есть канал и на RuTube, подписывайтесь — https://rutube.ru/channel/45885590/

Мы придумали новую штуку: возможность пройти сертификацию от Python Core Developer'а и получить от него Индивидуальный План Развития! Читайте подробности и заполняйте анкету, чтобы получить возможность пройти сертификацию одними из первых (и бесплатно :)). (Заполнить анкету можно до 10-го октября - успевайте!) https://docs.google.com/forms/d/e/1FAIpQLSeO6V2grI28C1CijVeiNxLyxwbShwx6yDQOIueyJpFNam1I6w/viewform

Один из частых вопросов в комментариях к подкасту - где взять идеи для учебных Dajngo-проектов. Хотя я сам считаю, что лучший учебный проект — это тот который ты придумал сам и который тебя драйвит, я понимаю, что многим было бы удобнее взять какую-то плюс-минус готовую идею и сосредоточиться на разработке. JetBrains у себя в блоге опубликовали список идей для проектов на Django. Хотя там в основном высокоуровневое описание проекта без деталей и всего пара ссылок на туториалы, если вам такое актуально - посмотрите https://blog.jetbrains.com/pycharm/2024/09/django-project-ideas/

Это партнёрское мероприятие, но сам я тоже постараюсь заглянуть :)

Python-meetup для всех желающих на площадке московского кампуса «Школы 21»! 9 октября в 19:00 на площадке московского кампуса «Школы 21» пройдет Python-meetup. Для участия необходимо зарегистрироваться. Участие в митапе - бесплатное. Программа мероприятия: Кишки Python 3.13 Спикер: Никита Соболев, CPython core developer Ведет канал про исходники CPython Из чего состоит микросервис в конце 2024 года Спикер: Денис Аникин, тимлид, пишет на python и typescript Построил и развивает корпоративное python-сообщество Убегаем от исключений Спикер: Евгений Блинов, выпускник «Школы 21» Ведущий: Николай Хитров, тимлид в компании «Точка» Пишет enterprise на Python, пропагандирует DDD и FP в массы «змеиного» сообщества

А что у нас будет в октябре? Уже догадались? Правильно, 95-й митап Moscow Python, который пройдёт в Сбере 21-го октября. По традиции нас ожидает 3 доклада: - Макс Столпасов (X5 Tech, TeamLead). D в DDD — где D это доменная логика - Арсен Гумин (Сбер, Руководитель направления по исследованию данных) Model-as-a-service: с нуля до enterprise ready - Юлия Сухинина (АО «ГОЛЬФСТРИМ охранные системы» (МТС), Руководитель по развитию). Разработка ТГ Бота с ИИ модулем для автоматизации процесса контроля качества оформления документов Читайте подробности и регистрируйтесь тут: https://moscowdjango.timepad.ru/event/3054238/ Онлайн-трансляция пройдёт на https://moscowpython.ru Митап проходит при поддержке Geekfactor.io, Evrone, Сбера и Learn Python. Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker

Места на завтрашнем митапе закончились, но если не успели зарегистрироваться или не можете прийти, не расстраивайтесь, ведь для вас всегда есть трансляция на moscowpython.ru :) До встречи на мероприятии и в онлайне!

Последние 5 мест на пятничный митап: https://moscowdjango.timepad.ru/event/3016786/ - кто успеет "запрыгнуть в последний вагон"? :)

Напоминаем, что уже на этой неделе в пятницу состоится наш 94-й митап, который пройдёт при поддержке компании MTS Digital. Нас ожидает 3 доклада: - Алексей Жиряков (KION — руководитель направления, техлид бекенд команды витрины). Geo по IP без усилителей вкуса и консервантов - Дмитрий Легчиков (CTO Harmonix). Датасторителлинг на Streamlit - Александр Гончаров (SlashHash LLC). Это вообще не просто! Читайте подробности и регистрируйтесь тут: https://moscowdjango.timepad.ru/event/3016786/ Онлайн-трансляция пройдёт на https://moscowpython.ru Митап проходит при поддержке Geekfactor.io, Evrone, MTS Digital и Learn Python. Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker

Привет! Напоминаем, что сегодня в 14:00 по мск обсудим новости августа: 🟤релиз Django 5.1; 🟤большое обновление uv; 🟤PyPI улучшила время реагирования на malware до 24 часов; 🟤Лучшие языки программирования 2024 года по версии IEEE. Начинаем через час по ссылке. Ссылки на новости оставили под видео, на выходных выложим выпуск на аудиоплощадки и добавим таймкоды под видео.

Всем привет! Анонсируем ближайший выпуск Moscow Python Podcast. В эту пятницу, 13 сентября обсудим новости августа: 🟤релиз Django 5.1; 🟤большое обновление uv; 🟤PyPI улучшила время реагирования на malware до 24 часов; 🟤Лучшие языки программирования 2024 года по версии IEEE. Когда: 13 сентября в 14:00 (по мск). Где: онлайн и в записи по ссылке.

Cтартовали записи на новые наборы курсов Learn Python, которые начнутся в ноябре. В частности, до конца сентября можно записаться на курс Learn Python Advanced cо скидкой (действует до конца сентября). Напомню, что на курсе вас ждёт: 10 недель интенсивной работы 4 трека: практика программирования, инфраструктура, автотесты и работа с Django Классные кураторы с кучей боевого опыта Знакомый вам формат обучения: небольшие группы, кураторы, ревью, много практики 2 общих созвона в неделю по вторникам и субботам (с возможностью посмотреть запись) Курс стартует 23-го ноября. В настоящий момент на курс принимается всего 25 человек. Регистрация доступна на https://learn.python.ru/advanced

Хорошая статья про то, как устроена в питоне сборка/установка пакетов и почему именно так. Для тех, кому любопытно чуть больше погрузиться в историю - самое то. Выводы у статьи простые - используйте pyproject.toml везде, где это возможно. Я с автором в этом согласен, например у меня на работе как минимум во всех новых проектах pyproject.toml используется по умолчанию. Ссылка - https://www.bitecode.dev/p/whats-the-deal-with-setuptools-setuppy

Календарь перевернули? Молодцы! :) Поздравляем всех с началом "горячего" осеннего сезона и напоминаем, 20-го сентября состоится наш 94-й митап, который пройдёт при поддержке компании MTS Digital. Нас ожидает 3 доклада: - Алексей Жиряков (KION — руководитель направления, техлид бекенд команды витрины). Geo по IP без усилителей вкуса и консервантов - Дмитрий Легчиков (CTO Harmonix). Датасторителлинг на Streamlit - Александр Гончаров (SlashHash LLC). Это вообще не просто! Читайте подробности и регистрируйтесь тут: https://moscowdjango.timepad.ru/event/3016786/ Онлайн-трансляция пройдёт на https://moscowpython.ru Митап проходит при поддержке Geekfactor.io, Evrone, MTS Digital и Learn Python. Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker

Друзья, это личная просьба от Валентина Домбровского, основателя Moscow Python: "Моя хорошая знакомая готовит доклад к конференции на тему взаимодействия кандидатов на технические позиции и компаний. Интересно, следите ли вы как-то за активностью компаний, прежде чем устраиваться туда на работу. Помогите, пожалуйста, в этом небольшом исследовании - заполните анкету. В ней всего 12 вопросов, которые займут не больше 5 минут. Большая благодарность от Натальи и меня лично всем откликнувшимся! :)" https://docs.google.com/forms/d/e/1FAIpQLSeZkyijfhFzQkIQmaUbn1ksd78EU2ciQ0QdJiQB6zXfltW-ug/viewform

Проблемы модуля `inspect`. Модуль inspect в питоне – сборник костылей и легаси. Если вы не любите людей, то можете спрашивать их: 1. Чем отличается typing.get_type_hints от inspect.get_annotations? А от annotationslib.get_annotations? 2. Какие проблемы есть у getargvalues? 3. Чем отличаются getargs, getfullargspec и singature? 4. В чем разница между inspect.iscoroutinefunction и asyncio.iscoroutinefunction? А между inspect.iscoroutine и asyncio.iscoroutine? 5. Чем будет отличаться inspect.getmembers от inspect.getmembers_static? 6. Как конкретно работает получение сигнатуры у разных объектов? 😱 Некоторое время назад я взялся исправить несколько самых сломанных частей: https://github.com/python/cpython/issues/108901 И даже сделал пакет с бекпортами для <=3.13: https://github.com/wemake-services/inspect313 Но все опять оказалось совсем не просто. Я не успел до фича фриза в 3.13, так что надеюсь, что успею в 3.14 Что сломано? Например: inspect.getargvalues. Оно не работает с pos-only параметрами:

>>> import inspect

>>> def func(a: int = 0, /, b: int = 1, *, c: int = 2):
...     return inspect.currentframe()

>>> frame = func()
>>> # notice that pos-only and kw-only args are not supported properly:
>>> inspect.formatargvalues(*inspect.getargvalues(frame))
'(a=0, b=1, c=2)'
Должно быть так:

>>> from inspect import Signature

>>> str(Signature.from_frame(frame))  # this API does not exist yet
'(a=0, /, b=1, *, c=2)'
Но, возникает вопрос: а нужно ли вообще добавлять такой метод? Насколько полезено получать сигнатуры из фреймов и код-обжектов? Далее: getfullargspec. Он не поддерживает pos-only параметры и не совсем корректно работает с параметрами self, cls, тд.

>>> import inspect

>>> class A:
...         def method(self, arg, /): ...

>>> inspect.getfullargspec(A.method)
FullArgSpec(args=['self', 'arg'], varargs=None, varkw=None, defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={})
>>> inspect.getfullargspec(A().method).args  # must not report `self`! :(
['self', 'arg']

>>> inspect.signature(A.method)
<Signature (self, arg, /)>
>>> inspect.signature(A().method)
<Signature (arg, /)>
Но, все-таки работа ведется довольно активно: - asyncio.iscoroutinefunction уже задепрекейчена: https://github.com/python/cpython/pull/122875 Скоро будет только версия из inspect - Добавили annotationslib.get_annotations (которая переехала из inspect и теперь будет самым-правильным-способом™): https://github.com/python/cpython/blob/9e108b8719752a0a2e390eeeaa8f52391f75120d/Lib/annotationlib.py#L582 - Пофиксили кучу багов Для чего `inspect` можно использовать на практике? Я пользовался inspect.signature только для создания рантайм имплементациия каррирования для dry-python/returns: https://github.com/dry-python/returns/blob/master/returns/curry.py Довольно много библиотечного кода используют inspect для интроспекции в самых неожиданных местах: - https://github.com/search?type=code&q=inspect.iscoroutinefunction - https://github.com/search?type=code&q=inspect.getfullargspec - https://github.com/search?type=code&q=inspect.getargvalues Расскажите: а у вас были проблемы с inspect? Если да, то какие?