ch
Feedback
Moscow Python

Moscow Python

前往频道在 Telegram

Канал Moscow Python. Всё о том, что выходит в наших каналах и о наших мероприятиях. Чат: @moscowpythonconf

显示更多
2 972
订阅者
+1824 小时
+817
+92930
帖子存档
Привет! Завтра в 14:00 по мск встретимся в прямом эфире Moscow Python Podcast и ответим на вопросы зрителей. Задавать вопросы можно в комментарии к эфирам. Когда и во сколько: 19 сентября в 14:00 по мск Выбирайте удобную площадку и присоединяйтесь к прямому эфиру: 🟤Смотреть на YouTube 🟤Cмотреть на Rutube 🟤Cмотреть в VK Видео

Уже на следующей неделе - 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

Завтра в 15:00 (по мск) обсудим новости Python в прямом эфире🎙 О чем поговорим в выпуске: 🔴документальный фильм о Python; 🔴StackOverflow Developer Survey; 🔴Python Developer Survey; 🔴Чего ждать от Django 6?; 🔴Astral запускают первый коммерческий продукт. Когда и во сколько: 5 сентября в 15:00 по мск (обратите внимание, что чуть позже, чем обычно проводим выпуск) Выбирайте удобную площадку и присоединяйтесь к прямому эфиру: 🟤Смотреть на YouTube 🟤Cмотреть на Rutube 🟤Cмотреть в VK Видео

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

Осталось немного мест на наш митап, который состоится завтра. Читайте подробности и регистрируйтесь тут: https://moscowdjango.timepad.ru/event/3491248/ Онлайн-трансляция пройдёт на https://moscowpython.ru Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, МТС Web Services. Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker

Напоминаем, что уже на следующей неделе - 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

Поздравляем Moscow Python Breakfast с 100-м завтраком!
Поздравляем Moscow Python Breakfast с 100-м завтраком!

Три типа объектов в Питоне В питоне часто любят обсуждать "мутабельные" и "иммутабельные" объекты, но крайне редко объясняют, в чем же на самом деле разница. Сегодня мы посмотрим на такое со стороны 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 | Чат |

Большая бесплатная 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 | Чат |

Напоминаем про наш 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, MTS Digital. Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker

Уже завтра обсудим новости 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 Видео

Приглашаем на наш 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

Делаем бесплатный курс по 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 объявляется открытым в комментах 🌚

Скоро начинаем. :) Подключайтесь на MoscowPython.ru ;)
Скоро начинаем. :) Подключайтесь на MoscowPython.ru ;)

Cкоро начнётся наш 103-й митап. Приходите, если зарегистрировались или подключайтесь к трансляции на moscowpython.ru!

Последняя возможность зарегистрироваться на наш митап, который пройдёт 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

Напоминаем, что уже на следующей неделе - 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

Лучший курс по 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 | Чат |

Напоминаем, что 23-го июля в Школе 21 состоится наш 103-й митап. Нас ожидает 3 доклада: - Станислав Коленский (Самозанятый, репетитор). Как учат программированию в школьный период и на сколько можно готовить кадры с подросткового возраста - Мария Рубаненко (Fintech AI / Tech lead DS). Суперсжатие на строках - Докладчик от Школы 21 - TBA Читайте подробности и регистрируйтесь тут: https://moscowdjango.timepad.ru/event/3435199/ ВНИМАНИЕ: Не забудьте взять с собой паспорт! Онлайн-трансляция пройдёт на https://moscowpython.ru Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, Школа 21. Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker

Уже сегодня обсудим новости Python в прямом эфире🎙 О чем поговорим в выпуске: 🔴State of free threading python (FTP); 🔴Проблемы честной concurrency; 🔴Как дела у Python на мобилке; 🔴Python и Mojo; 🔴Заменит ли AI джунов; 🔴Как дизайнить DSL-и в эпоху LLM. Когда и во сколько: 4 июля в 14:00 по мск Выбирайте удобную площадку и присоединяйтесь к прямому эфиру: 🟤Смотреть на YouTube 🟤Cмотреть на Rutube 🟤Cмотреть в VK Видео