Moscow Python
1.86K subscribers
110 photos
3 videos
2 files
817 links
Канал Python.ru и Moscow Python. Новости сообщества, события, статьи, интервью.

Чат: @moscowpythonconf
Download Telegram
Лучший курс по Python 15: Subinterpreters

Продолжаем говорить про субинтерпретаторы.
Пригласил их автора – Eric Snow – чтобы поговорить про историю, актуальное состояние проекта и его будущее. Особо отмечу темы про будущие оптимизации. Как ускорить старт интерпретатора? Как сделать возможным шеринг большего количества данных?

Все здесь! Есть русские и английские субтитры.
А еще я добавил много примеров кода и ссылки на исходники / пепы / статьи.
Жмите на паузу и читайте :)

https://www.youtube.com/watch?v=VBiaNNpLzWA

Внутри:
00:00 Вступление
00:11 Представление гостя
01:20 Введение в subinterpreters и PEP-554
04:21 Как subinterpreters выглядят с точки зрения OS?
05:50 Зачем добавили субинтерпретаторы в Python1.5?
08:01 Сколько субинтерпретаторов можно запустить в один момент?
09:19 История subinterpreters
17:25 Изоляция модулей и PEP-687
25:22 Immortal objects и PEP-683
29:15 Static Types
32:50 Проблема с модулем SSL
34:44 Связь subinterpreters и free-threading
42:45 Erlang и Actor Model
43:50 CSP, Channels
45:23 _interpqueues
46:11 (не)Копирование данных при отправке данных в очередь
48:53 Можно ли безопасно делить все буфферы? memoryview
49:53 subinterpreters vs multiprocessing
53:09 subinterpreters and asyncio
56:07 PEP-734
56:37 Сборщик мусора, GC
58:13 Как сделать еще быстрее и лучше в будушем?
01:03:34 Какие библиотеки стоит сделать сообществу?
01:08:14 Завершение

Обсуждение: кого бы вы хотели видеть в качестве будущего гостя?

| Поддержать | YouTube | GitHub | Чат |
8👍1😱1
Напоминаем, что уже на следующей неделе - 23-го июля в Школе 21 состоится наш 103-й митап.

Нас ожидает 3 доклада:
- Станислав Коленский (Самозанятый, репетитор). Как учат программированию в школьный период и на сколько можно готовить кадры с подросткового возраста
- Мария Рубаненко (Fintech AI / Tech lead DS). Суперсжатие на строках
- Михаил Попов (Assigna Python Backend Developer). Vibe coding. Очевидные преимущества и непоправимые угрозы

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3435199/

ВНИМАНИЕ: Не забудьте взять с собой паспорт!

Онлайн-трансляция пройдёт на https://moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, Школа 21.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
👍3🔥1
Последняя возможность зарегистрироваться на наш митап, который пройдёт 23-го июля в Школе 21, - регистрация скоро закроется!

Нас ожидает 3 доклада:
- Станислав Коленский (Самозанятый, репетитор). Как учат программированию в школьный период и на сколько можно готовить кадры с подросткового возраста
- Мария Рубаненко (Fintech AI / Tech lead DS). Суперсжатие на строках
- Михаил Попов (Assigna Python Backend Developer). Vibe coding. Очевидные преимущества и непоправимые угрозы

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3435199/

ВНИМАНИЕ: Не забудьте взять с собой паспорт!

Онлайн-трансляция пройдёт на https://moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, Школа 21.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
Cкоро начнётся наш 103-й митап. Приходите, если зарегистрировались или подключайтесь к трансляции на moscowpython.ru!
3👍2
Скоро начинаем. :)
Подключайтесь на MoscowPython.ru ;)
8🔥6
Снимок экрана 2025-07-25 в 16.38.01.png
454.8 KB
Делаем бесплатный курс по vscode?

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

Тем более видосы с нарезкой моего подкаста на данную тему с @t0digital собрали много обсуждений и даже возмущений. А значит – тема горячая :)

Будем делать из второй картинки третью.

О чем поговорим?
- Почему DX важен?
- Почему vscode, а не vim / pycharm / emacs / тд. И как применить такие же подходы к другим средам
- О минимализме. Для успешной работы вам нужно меньше инструментов, а не больше
- О том, как сделать минимальное количество полезных горячих клавиш, которыми вы реально будете пользоваться
- Как навигироваться по коду, файлам, важным местам в проекте
- Какие принципы позволят вам сделать свой уникальный рабочий сетап, который удобен вам
- Как можно делать свои крутые инструменты, как пример для работы со сложными кейсами в git: https://github.com/sobolevn/fzf-simple-git
- Как писать свои темы, плагины. И когда их не писать

Будет крайне полезно, чтобы писать код быстрее и проще.

Мои конфиги за ~10 лет работы всегда можно посмотреть тут: https://github.com/sobolevn/dotfiles

Собираем донат goal на +16 человек – и начинаем! Все будет бесплатно и на ютюбе. Подписка на https://boosty.to/sobolevn стартует со 100 рублей.

Холивар про IDE объявляется открытым в комментах 🌚
19🔥11👍1
Приглашаем на наш 104-й митап, который состоится 26-го августа в компании MTS Digital!

Нас ожидает 3 доклада:
- Станислав Козырев (ЦУНБ им. Некрасова, ведущий инженер-программист). Как научить Алису рецептам дореволюционной кухни
- Артур Зиннуров (Software Engineer, Swansea University). CI/CD Pytest для тестирования качества данных здравоохранения в Великобритании
- Докладчик от MTS Digital — TBA

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3491248/

Онлайн-трансляция пройдёт на https://moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, MTS Digital.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
🔥73
Forwarded from Елизавета Грейм
Уже завтра обсудим новости Python в прямом эфире🎙

О чем поговорим в выпуске:
🔴20 лет Django;
🔴Python 3.14 rc1;
🔴Reflections on 2 years of CPython’s JIT Compiler: The good, the bad, the ugly;
🔴PEP 792 – Project status markers in the simple index;
🔴PyPi и inbox.ru.

Когда и во сколько: 1 августа в 14:00 по мск

Выбирайте удобную площадку и присоединяйтесь к прямому эфиру:
🟤Смотреть на YouTube
🟤Cмотреть на Rutube
🟤Cмотреть в VK Видео
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥3👍2
Напоминаем про наш 104-й митап, который состоится 26-го августа в компании MTS Digital!

Нас ожидает 3 доклада:
- Станислав Козырев (ЦУНБ им. Некрасова, ведущий инженер-программист). Как научить Алису рецептам дореволюционной кухни
- Артур Зиннуров (Software Engineer, Swansea University). CI/CD Pytest для тестирования качества данных здравоохранения в Великобритании
- Никита Дорофеев (Блендер, Senior Python Developer. Оптимизация сервиса АБ тестирования или как уйти от Django ORM к Fastapi query builder

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3491248/

Онлайн-трансляция пройдёт на https://moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, МТС Web Services.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
6👍2🔥2
Большая бесплатная Python конференция в Нижнем Новгороде!

У меня хорошая новость. Делаем бесплатную конфу по питону, пригласили топовых специалистов: core-разработчиков, контрибьюторов, организаторов разных комьюнити движух, специалистов из индустрии. И все – участники нашего чата. Как же так получилось 🌚

Вот такой список докладов:

- Подопригора Кирилл, CPython core dev, Evrone: Кто такой CFG в CPython, и какую роль он выполняет?
- Хитров Николай, организатор @peer_2beer, Точка Банк: Проектирование — это когда чувствуешь, а не какие-то там циферки
- Ильиных Илья, организатор @spbpythonnews, блоггер @kydavoiti: Vim — это метаредактирование
- Джалаев Давид, Газпром-нефть ЦР: Continuous profiling
- Порядин Алесей, участник @pytho_nn: AI-агенты в каждый дом
- Мирянов Сергей, CPython contributor, РН-Технологии: Внутреннее устройство сборки мусора в CPython 3.14+
- Неретин Степан, CPython contributor, Postgres Professional: Своя файловая система за 5 минут на Python
- Ефимов Михаил, CPython contributor, X5 Tech: Генератор байткода и байткод генератора

Ну мощь же 💪
Да, конференции можно делать и не за 50 тыщ за билет.

А еще будет много доброго общения, обсуждения кишочков питона, настолки и тусовка до утра :)
Идеальный день.

Бронируйте дату! Если давно хотели побывать в Нижнем – вот идеальный повод. Буду рад всех видеть лично!

📍 Когда: 20 сентября 2025 года
📍 Где: ул. Нижне-Волжская набережная, 11, «Академия Маяк» им. А.Д. Сахарова

Регистрация обязательна: https://dev.itgorky.ru

| Поддержать | YouTube | GitHub | Чат |
🔥19👍2
Три типа объектов в Питоне

В питоне часто любят обсуждать "мутабельные" и "иммутабельные" объекты, но крайне редко объясняют, в чем же на самом деле разница. Сегодня мы посмотрим на такое со стороны C.

PyObject

Все мы знаем, что в питоне все объект или PyObject *, который упрощенно выглядит так (в FT сборке он посложнее):


struct _object {
Py_ssize_t ob_refcnt;
PyTypeObject *ob_type;
}


То есть: у нас есть только счетчик ссылок на объект и указатель на его тип. Первое меняется очень часто, если объект не immortal. Второе тоже можно менять в некоторых случаях:


>>> class A:
... __slots__ = ()

>>> class B:
... __slots__ = ()

>>> a = A()
>>> type(a)
<class '__main__.A'>
>>> a.__class__ = B
>>> type(a)
<class '__main__.B'>


Получается, что большинство объектов мутабельные уже на данном уровне.

Но, в целом есть три типа объектов, разные по уровню мутабельности:
1. Такие как None: ob_refcnt не меняется (immortal), тип менять нельзя, ведь Py_TPFLAGS_IMMUTABLETYPE установлен (static type), размер неизменный 0 для всех потенциальных значений
2. Такие как int: ob_refcnt может меняться для больших чисел (маленькие инты - immortal), тип менять нельзя, размер нельзя менять, но он будет разный для разных чисел:


>>> sys.getsizeof(1)
28
>>> sys.getsizeof(10000000000000)
32


3. Такие как list: ob_refcnt всегда меняется, тип менять нельзя, размер меняется

Отдельно нужно отметить, что пользовательские классы обычно еще более мутабельны, потому что и тип менять можно.
Но, вопрос в другом: а где вообще хранится размер объекта и его внутренности? Раз в PyObject ничего такого нет.

C-API

В C-API питона есть два полезных макроса: PyObject_HEAD для объектов фиксированного размера и PyObject_VAR_HEAD для объектов, которые могут менять размер.


struct PyVarObject {
PyObject ob_base;
Py_ssize_t ob_size; /* Number of items in variable part */
};

#define PyObject_HEAD PyObject ob_base;
#define PyObject_VAR_HEAD PyVarObject ob_base;


Хотим поменять размер объекта? Увеличиваем ob_size, аллоцируем новую память (если нужно) под новые объекты внутри.

Итоговые объекты используют примерно такую логику:


typedef struct {
PyObject_VAR_HEAD
/* Vector of pointers to list elements. list[0] is ob_item[0], etc. */
PyObject **ob_item;

/* ob_item contains space for 'allocated' elements. The number
* currently in use is ob_size.
*/
Py_ssize_t allocated;
} PyListObject;


То есть: на самом деле все объекты list (и любые другие) не просто PyObject, они:
- Имеют свой собственный тип: PyListObject
- Имеют общую абстракцию для размерности: PyVarObject
- Имеют общую абстракцию для типа и счетчика ссылок: PyObject

Я сделал небольшой очень упрощенный пример. Там я показываю в том числе, как происходит каст одного типа поинтера в другой в C.

Итог

1. None не имеет внутреннего состояния вообще (не использует ничего)
2. int может иметь разный размер, но не может изменяться, потому использует PyObject_HEAD (раньше был PyObject_VAR_HEAD, там сложная история):


typedef struct _PyLongValue {
uintptr_t lv_tag; /* Number of digits, sign and flags */
digit ob_digit[1];
} _PyLongValue;

struct _longobject {
PyObject_HEAD
_PyLongValue long_value;
};


3. list может иметь разный размер и может изменяться, потому использует PyObject_VAR_HEAD, как я показывал выше

Обсуждение: как вы думаете, как работает len() для list?

| Поддержать | YouTube | GitHub | Чат |
11🤓1💊1
Поздравляем Python Breakfast Moscow с 100-м завтраком
🔥205🍾3
Напоминаем, что уже на следующей неделе - 26-го августа - состоится наш 104-й митап, который пройдёт в компании МТС Web Services!

Нас ожидает 3 доклада:
- Станислав Козырев (ЦУНБ им. Некрасова, ведущий инженер-программист). Как научить Алису рецептам дореволюционной кухни
- Артур Зиннуров (Software Engineer, Swansea University). CI/CD Pytest для тестирования качества данных здравоохранения в Великобритании
- Никита Дорофеев (Блендер, Senior Python Developer. Оптимизация сервиса АБ тестирования или как уйти от Django ORM к Fastapi query builder

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3491248/

Онлайн-трансляция пройдёт на https://moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, МТС Web Services.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
🔥4👍1
Осталось немного мест на наш митап, который состоится завтра.

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3491248/

Онлайн-трансляция пройдёт на https://moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, МТС Web Services.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
🔥3
Forwarded from Valentin Dombrovsky
22-го сентября состоится наш 105-й митап, который пройдёт в компании K2 Cloud!

Нас ожидает 3 доклада:
- Пётр Андреев (МФТИ, лектор по курсу Advanced Python). Дотянуться до кремния. HighLoad Python: SIMD, GPU
- Кирилл Гладких (ООО Штаб, Python разработчик). Как вайбкодить по-сениорски
- Антон Важнецов (K2 Cloud, Тимлид). Подход к глубоким изменениям. Миграция SDN в боевом облаке на Python

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3552715/

Онлайн-трансляция пройдёт в группе ВК K2 Cloud. Всю важную информацию можно будет найти прямо там или в телеграм-канале ребят.

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, K2 Cloud.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
👍9
Forwarded from Елизавета Грейм
Завтра в 15:00 (по мск) обсудим новости Python в прямом эфире🎙

О чем поговорим в выпуске:
🔴документальный фильм о Python;
🔴StackOverflow Developer Survey;
🔴Python Developer Survey;
🔴Чего ждать от Django 6?;
🔴Astral запускают первый коммерческий продукт.

Когда и во сколько: 5 сентября в 15:00 по мск (обратите внимание, что чуть позже, чем обычно проводим выпуск)

Выбирайте удобную площадку и присоединяйтесь к прямому эфиру:
🟤Смотреть на YouTube
🟤Cмотреть на Rutube
🟤Cмотреть в VK Видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤩32👍2
Уже на следующей неделе - 22-го сентября состоится наш 105-й митап, который пройдёт в компании K2 Cloud!

Нас ожидает 3 доклада:
- Пётр Андреев (МФТИ, лектор по курсу Advanced Python). Дотянуться до кремния. HighLoad Python: SIMD, GPU
- Кирилл Гладких (ООО Штаб, Python разработчик). Как вайбкодить по-сениорски
- Антон Важнецов (K2 Cloud, Тимлид). Подход к глубоким изменениям. Миграция SDN в боевом облаке на Python

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3552715/

Онлайн-трансляция пройдёт в группе ВК K2 Cloud. Всю важную информацию можно будет найти прямо там или в телеграм-канале ребят.

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, K2 Cloud.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
👍1🔥1
Forwarded from Елизавета Грейм
Привет! Завтра в 14:00 по мск встретимся в прямом эфире Moscow Python Podcast и ответим на вопросы зрителей. Задавать вопросы можно в комментарии к эфирам.

Когда и во сколько: 19 сентября в 14:00 по мск

Выбирайте удобную площадку и присоединяйтесь к прямому эфиру:
🟤Смотреть на YouTube
🟤Cмотреть на Rutube
🟤Cмотреть в VK Видео
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥2
Записи с нашей бесплатной конфы в Нижнем подъехали!

Во-первых, хочу еще раз повторить слова благодарности всем: организаторам и волонтерам, спикерам, участникам. Отдельно хочу отметить тех, кто поддержал конфу анонсами. Приехало и пришло очень много людей: 1100+ регистраций, почти 600 человек на площадке. Вы все крутые!

Во-вторых, в программе случились две замены. Ждем ребят, кто не смог приехать, на будущих мероприятиях.

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

Конкуренция за звание "лучшего" доклада – высочайшая. Выбирать будем не по каким-то там голосованиям, которые ни на что не влияют, а по просмотрам на ютюбе. Поддержите спикеров и меня просмотрами :)

Выкладываю записи сразу, а не через полгода.

Доклады в порядке выступлений:
- Чего вы не знали о строках в Python? Василий Рябов https://www.youtube.com/watch?v=VkJKzQVj90c
- ИИ-агенты в каждый дом, Алексей Порядин @sw1logs https://www.youtube.com/watch?v=uKla6I_ZMwo
- Генератор байткода и байткод генератора, Михаил Ефимов https://www.youtube.com/watch?v=04-WWqdGaQ0
- Внутреннее устройство сборки мусора в CPython 3.14+, Сергей Мирянов https://www.youtube.com/watch?v=bkwObR9KnoA
- Проектирование — это когда чувствуешь, а не какие-то там циферки, Николай Хитров @nkhitrov_blog https://www.youtube.com/watch?v=eVcx6qZfU-M
- Дотянуться до кремния. HighLoad Python: SIMD, GPU – Пётр Андреев @py_up https://www.youtube.com/watch?v=_N5SoMGUEik
- Continuous profiling, Давид Джалаев @dzhalaevd_blog https://www.youtube.com/watch?v=gfFfLL5A6Wk

Доклад от Ильи Ильиных был в другом зале, он записывал его сам - ждите доклад про Vim у него на канале @kydavoiti

Но, на конфе были и минусы :)
Следующий раз постараемся поправить шум от стендов (мешали в большом зале), записать все доклады (сейчас только один зал), пригласить еще больше гостей.

Наша традиционная вечеринка собрала полный бар людей, было очень весело. Отлично посидели, погуляли, поболтали. Лучшее сообщество!

При поддержке:
- https://it52.info
- https://itgorky.ru

Обсуждение: Кто был? Как вам конфа? Как вам Нижний Новгород?
Если понравилось: напишите приятное организаторам и спикерам. Если не понравилось – пишите вашу критику. Будем делать лучше.

| Поддержать | YouTube | GitHub | Чат |
10🔥5
Напоминаем, что сегодня в 19 часов проходит наш митап, который состоится в компании K2 Cloud.

Если вы зарегестрированы и планируете прийти, просьба не забывать паспорт!

Также вы можете посмотреть онлайн-трансляцию в группе ВК K2 Cloud.

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, K2 Cloud.
👍6🔥3