gram news
Аватар канала Находки в опенсорсе

Находки в опенсорсе

@opensource_findings

Привет! Меня зовут Никита Соболев. Я занимаюсь опенсорс разработкой полный рабочий день. Тут я рассказываю про #python, #c, #opensource и тд. Поддержать: https://boosty.to/sobolevn РКН: https://vk.cc/cOzn36 Связь: @sobolev_nikita

12,500подписчиков

Открыть канал

Последние посты

  • Находки в опенсорсе

    15 сент., 10:45изменён

    PEPы в Python окончательно вышли из-под контроляДавайте посмотрим, что происходит с ПЕПами в CPython. Там много новых спорных штук. Начнем с более базовых, перейдем к дичи в конце. Какие-то ПЕПы приняты, но большинство в обсуждении.Докстринги для TypeAliasTypePEP-846: https://github.com/python/peps/pull/5116Базовая база: пишем докстринги после ключевого слова type - у нас появляется __doc__ атрибут.type Timeout = float | None """Maximum wait in seconds. """Привычный синтаксис из-за sphinx аннотаций для атрибутов. Кстати, поддержка правила для поиска докстрингов вне правильных мест уже в wps!Паттерн-матчинг конкретных значенийPEP-845: https://github.com/python/peps/pull/5107
    4,230501210961Открыть в Telegram
  • Находки в опенсорсе

    10 сент., 07:14

    Большая бесплатная конференция в Нижнем Новгороде 17 октябряРегистрация: https://itgorky.ru/bolshaya-vstrecha При поддержке @it52infoМы продолжаем нашу традицию делать большую осеннюю конференцию в Нижнем. Вот тут можно почитать / посмотреть как было в прошлом году: https://t.me/opensource_findings/934Что будет? - Много разных секций: Python / DevRel / Frontend / Mobille - Слет всего нашего сообщества @pytho_nn: приедет весь наш опенсорс чат, будет кучу людей из Москвы, Казани, других городов - Много дружеского и профессионального общения - Настолки! - Встреча подписчиков. Приедет много людей из телевизора, всех их мы заманим в бар после конференции, с ними можно будет поговорить, выпить пива, сфотаться, подружиться :) - Бар, кальяны и тусовка до утра (самое главное, очевидно)В текущем году я решил позвать в качестве докладчиков ваших любимых ютюберов и опенсорсеров.Доклады
    8,900564218321Открыть в Telegram
  • Находки в опенсорсе

    1 сент., 09:09изменён

    9,180743910211Открыть в Telegram
  • Находки в опенсорсе

    24 авг., 09:13изменён

    JIT могут удалить из CPython!PEP-836: https://peps.python.org/pep-0836JIT в CPython имеет очень много проблем, давайте их обсудим.Если вы все пропустили, то вот вам краткий таймлайн всей истории: - В мае 2021 года создается команда Faster CPython, под руководством Гвидо в MS, которая должна работать над улучшением скорости CPython - Где-то в 2022м году к команде присоединяется Brandt Butcher, автор первой версии JIT - В октябре 2023 года, Brandt презентовал свою идею добавления JIT в CPython - В январе 2024 года, PR был влит в 3.13, создана первая версия Copy-and-Patch JIT - В апреле 2024 года релиз менеджеры и SC с таких новостей немного прифигели и попросили сделать PEP хотя бы пост-фактум: https://peps.python.org/pep-0744 - В октябре 2024 года выходит 3.13 с JITом, который можно включить опционально - В мае 2025 года MS увольняет всех участников команды Faster CPython - В октябр
    Иллюстрация к посту канала Находки в опенсорсеИллюстрация к посту канала Находки в опенсорсе
    9,950672312432Открыть в Telegram
  • Находки в опенсорсе

    18 авг., 09:01изменён

    Как AWS у опенсорсера пакеты отжималНерегулярная рубрика "посмотрите, что творится!". Данная история была в оригинале рассказана Кареном в нашем чате (там регулярно происходит интересное), публикую в своем канале с его разрешения.Новый SDK для AWS от Карена (автора zapros, автора httpx-aiohttp, топ-3 контрибьютора httpx): https://github.com/kap-sh/capoКак-то я решил написать нормальный SDK для AWS. Их текущий SDK — boto3 — это суперлегаси с кучей костылей: без нормальной типизации, без поддержки асинхронности, почему-то с PascalCase и ещё кучей странных решений.У меня уже был хороший опыт работы с SDK: до этого я работал над SDK для OpenAI и Anthropic на Python и TypeScript, так что успел накопить некоторое понимание того, как делать SDK хорошо.С AWS всё немного сложнее: у них около 450 сервисов и примерно 17 миллионов строк сгенерированного кода. Конечно, я не собирался
    TelegramНаходки в опенсорсеНерегулярная рубрика "посмотрите, что творится!". Как вы знаете, рынок найма http клиентов полностью сломан! Сегодня мы постараемся решить данную проблему. zapros - modern and extensible python http client Звезды ставить сюда: https://github.com/kap-sh/zapros…
    11,5001011912876Открыть в Telegram
  • Находки в опенсорсе

    14 авг., 12:51изменён

    Какие уникальные фичи есть в django-modern-rest?Иногда, когда я добавляю какие-то фичи в мой https://github.com/wemake-services/django-modern-rest ⭐, то я думаю про себя: почему таких фичей больше нет нигде?Давайте сегодня посмотрим на них. А вы мне расскажите свое мнение в комментах.Семантическая схемаДопустим, вы навесили на какой-то свой endpoint auth:class UserController(Controller[MsgspecSerializer]): @modify(auth=[JWTAsyncAuth()]) async def get(self) -> User: ...В OpenAPI автоматически появятся все коды ошибок, которые могут случиться в auth (401). Ничего не надо допом писать. И так происходит со всеми частями фреймворка: добавил throttling=[SyncThrottle(1, Rate.minute)]? Теперь у тебя в ответах автоматом 429. Если нужно, можно отключить любые семантические статусы.Не должно ли такое быть дефолтом везде?Умные типы ошибок
    GitHubGitHub - 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
    10,200893318331Открыть в Telegram
  • Находки в опенсорсе

    4 авг., 11:14изменён

    Я попробовал uv, обплевался и вернулся на poetryЕсли вы последние полгода не читали чат, то вы не знаете, как сильно у меня горело после перехода на uv. Сейчас расскажу! Данный пост специально написан, чтобы и у вас тоже сгорело. Если к концу вы подойдете без боли в ... душе, то все было зря.Как все было?Обычно, я первый прыгаю пробовать все новые и модные штуки. Так было с Pipenv, когда он только появился. Что там творилось! Так было с poetry, которым я начал пользоваться через год, в 2018м. Но вот с uv так не было, потому что я не знал, зачем бы мне хотелось переехать. Быстрее?Но ладно, мы решили попробовать его на 3х проектах. Быстро же! Ух 🌚 - https://github.com/typeddjango/django-stubs (терпим) - https://github.com/wemake-services/django-modern-rest (сложно съехать) - https://github.com/wemake-services/wemake-django-template (откатили)Почему?Ох, даже не знаю с чего
    TelegramНаходки в опенсорсе: чатКанал: @opensource_findings Правила: https://gist.github.com/sobolevn/d9a598a23e6bb89e51ada71033e9103f
    11,400943619191513Открыть в Telegram
  • Находки в опенсорсе

    3 авг., 05:17изменён

    Вайбкодим security компоненты в django-modern-rest (или нет) https://www.youtube.com/watch?v=laJQcNAqxc0 В django-modern-rest появилась большая задача: полностью мигрировать в себя dj-rest-auth. Ссылочка (мы ищем контрибьюторов, особенно специалистов в
    GitHubReplace token doctest examples with a real test app by Lancetnik · Pull Request #1196 · wemake-services/django-modern-restI have made things! Reworked after review. The first commit was the narrow fix; this now follows the suggested approach. The bug --doctest-modules and --doctest-glob=*.rst execute the >&...
    9,450803810331Открыть в Telegram
  • Находки в опенсорсе

    1 авг., 09:02изменён

    Вайбкодим security компоненты в django-modern-rest (или нет)https://www.youtube.com/watch?v=laJQcNAqxc0В django-modern-rest появилась большая задача: полностью мигрировать в себя dj-rest-auth. Ссылочка (мы ищем контрибьюторов, особенно специалистов в безопасности OAuth / MFA / Passkeys!): https://github.com/wemake-services/django-modern-rest/issues/1193На что @fastnewsdev (как главный пропагандист ИИИ = "инженерный искусственный интеллект" ) сказал, что он мне такое заваншотит клодом еще до того, как я успею выпить бутылку пива. Ну вот и посмотрим, пиво я пью быстро 🌚Завтра стрим в 19:00 на канале вялых питонов: - Никита будет вайбкодить Django код (он не знает джангу) - Никита будет ревьюить и пытаться дотащить код хоть до какого-то вменяемого состоянияПриходите смотреть, на что реально способен ИИ. Сбивайте нас с толку своими остроумными комментариями, задавайте
    YouTubeВайбкодим security компоненты в django-modern-rest (или нет)Донаты: https://www.donationalerts.com/r/sluggishpythons Как-то два Никиты поспорили, что один Никита может написать самый грустный код для аутентификации, используя только Claude Code. На что второй Никита сказал: я такое готов терпеть только с пивом. …
    8,900110199832Открыть в Telegram
  • Находки в опенсорсе

    31 июл., 07:48изменён

    id() в питоне не выдает уникальные значенияНаверняка, многие из вас, когда изучали питон читали, что id(obj) дает уникальный идентификатор объекта. Его даже назвали, блин, id 🌚️️Но, все не совсем так. Сегодня будем срывать покровы с одной из самых простых и сложных механик в питоне.Что вообще такое id?Сначала, давайте посмотрим на то, как id() устроен:static PyObject builtin_id_impl(PyModuleDef self, PyObject v) { PyObject id = PyLong_FromVoidPtr(v);if (id && PySys_Audit("builtins.id", "O", id) < 0) { Py_DECREF(id); return NULL; }
    Python documentationAudit events tableThis table contains all events raised by sys.audit() or PySys_Audit() calls throughout the CPython runtime and the standard library. These calls were added in 3.8 or later (see PEP 578). See sys.ad...
    13,2001733623943Открыть в Telegram
  • Находки в опенсорсе

    13 июл., 09:04изменён

    Внутри питона есть ЕЩЕ виртуальные машиныМы все знаем, что сам питон - одна большая стековая виртуальная машина, которая выполняет опкоды. Их мы можем посмотреть через dis:>>> import dis >>> dis.dis('x + y') 0 RESUME 01 LOAD_NAME 0 (x) LOAD_NAME 1 (y) BINARY_OP 0 (+) RETURN_VALUEМожем получить список всех опкодов, можем вызвать их оптимизации и посмотреть на результат с оптимизациями.Но! Внутри CPython есть и другие виртуальные машины. Сегодня поговорим про ту, которой все мы всегда пользовались, но не знали, что она - виртуальная машина.pickleДа, не удивляйтесь. Встроенный протокол сериализации в питоне работает благодаря отдельной стековой виртуальной машине. Давайте посмотрим.
    Python documentationpickletools — Tools for pickle developersSource code: Lib/pickletools.py This module contains various constants relating to the intimate details of the pickle module, some lengthy comments about the implementation, and a few useful functi...
    9,89091331732Открыть в Telegram
  • Находки в опенсорсе

    10 июл., 09:15изменён

    Подкаст про управление разработкой в новой реальностиВК | ТГМеня пригласили поучаствовать в подкасте, чтобы обсудить разработку с ИИ и управление разработкой с ИИ.Участники: - Кирилл Меньшов, старший вице-президент и руководитель блока «Технологии» Сбера - Дмитрий Иванов, руководитель SourceCraft в Яндексе - Я, опенсорс разработчикПоговорили про важные вопросы: - Сможем ли программировать на русском? Или его тоже потребуется формально верифицировать? - Как обеспечить должный уровень ИБ, когда софт пишут агенты? - Как оставить себе "план б", если код все-таки придется смотреть? - Как расти в новом мире как инженер? - Откуда брать новых senior разработчиков? И нужны ли они? - Как починить найм? И почему резюме скорее всего скоро будет не особо нужноКак вы знаете, я занимаю довольно нейтрально-реалистичную позицию в ИИ вопросах: есть такие-то плюсы и минусы, такие-то риски,
    VK ВидеоТехкомьюнити: спецификации вместо кода, токенмаксинг и агенты, которые проходят собес за тебя. Шестой выпуск со Сбером, ЯндексомРезюме Шрека попало в топ HeadHunter. Не шутка — реальный кейс, о котором упоминают в шестом выпуске «Техкомьюнити». Пока одни разработчики скармливают резюме промпт-инъекциям, чтобы обмануть ИИ-рекрутера, другие жгут токены на абсолютно любую задачу. Разбираемся…
    9,160591612533Открыть в Telegram
  • Находки в опенсорсе

    6 июл., 11:50изменён

    Наконец-то полезные фичи в питонеМногие знают, что я почти не добавляю новые фичи в CPython, я стараюсь выпилить существующие и править баге в тех, что у меня не получается убирать. Новые если и добавляю, то без масштабных обсуждений.Некоторые новые фичи встречают у меня сильный оптимизм: как новый встроенный sampling profiler. Вот тут видео про него кстати с прошедшего PyCon. Некоторые фичи встречают у меня понимание: как например typing.disjoint_base. Простая штука, решает понятную проблему. Некоторые фичи встречают у меня лютое подгорание: как например lazy imports. Вот доклад с пайкона и про них, кстати.Я думаю, что мое понимание хорошей фичи очень сильно расходится с таким пониманием у других питонистов, мое понимание "хорошего питона" можно найти в моем wemake-python-styleguide.Зная такую вводную, я решил сделать "большую" новую фичу. На один символ в грамматике.Иммутабел
    YouTubeTachyon: Python 3.15's sampling profiler is faster...- Pablo Galindo Salgado, Laszlo Kiss KollarFull talk title: "Tachyon: Python 3.15's sampling profiler is faster than your code" In the core dev team we set out to build the best sampling profiler for any interpreted language and place it in the standard library. Python 3.15 ships the result: Tachyon…
    11,20014723181081Открыть в Telegram
  • Находки в опенсорсе

    29 июн., 09:08изменён

    Пользуясь случаем: у нас 10 июля митап в Нижнем Новгороде. https://pytho-nn.timepad.ru/event/4050146/В программе 4 крутейших юбилейных доклада от гостей города и (даже!) нижегородца:- Артем Пашков, Нижний Новгород, Сообщество "Опенсорсеры", Как сообщество Опенсорсеры помогает open source проектам и разработчикам?Отвечу на главный вопрос: нужно ли лично вам занимать опенсорсом? И как начать?Расскажу про проблемы, знакомые многим: недостаток внимания к своему проекту, где искать контрибьюторов, куда самому законтрибьютить, а также как получить полезный фидбек.- Илья Солин, Уфа, ТБанк, https://t.me/http_418_i_am_a_teapot, Алгебраические эффекты: понять, полюбить и никогда не тащить в продРазберём концепцию теоретически (почему это классно), попробуем реализовать её на Python и поймём, стоило ли оно того.- Георгий Бородин, Москва, Как я перестал бояться и полюбил бойлерплейтБ
    pytho-nn.timepad.ruPythoNN 10: митап питонистов в Нижнем Новгороде, июль 2026 / События на TimePad.ru
    11,00034108Открыть в Telegram
  • Находки в опенсорсе

    29 июн., 08:51изменён

    Если вы понимаете данный баг, то вы знаете питон лучше 95% людейА если нет, то вы многое узнаете про то, как работает память и почему мутабельностью стоит пользоваться с осторожностью. Недавно я увидел один из лучших багов в CPython за долгое время. А я видел много багов 🌚️️Вот код, который делает две критичные безумные вещи (попробуйте их найти прежде, чем читать дальше):class Evil: def __eq__(self, other): return otherleaked = vars(list) == Evil() name = "example" leaked[name] = lambda self: "probe" print(getattr(list, name)([])) del leaked[name] print(hasattr(list, name))Разбор бага
    GitHubcpython/Python/bltinmodule.c at f6e904e1a666cb1e5664750b1c3d8f89cba3a769 · python/cpythonThe Python programming language. Contribute to python/cpython development by creating an account on GitHub.
    16,5006451181111Открыть в Telegram
  • Находки в опенсорсе

    25 июн., 13:14

    Генерируем Rust код из Python и становимся крабамиПроект "острый краб": https://github.com/kushaldas/spicycrabВы же знаете, что вы узнаете про все важные штуки в питоне первыми? На ближайшем Language Summit в июле Кушал Дас - core-разработчик CPython - представит свой новый проект. Но зачем ждать июля, когда код открыт? Давайте смотреть и пробовать!В чем главная идея?- Пишем на типизированном Python - Получаем на выходе Rust код, который работает в десятки или сотни раз быстрее - Можем использовать в Python крейты Rust и Python пакеты, что? 🙀(проект еще не просто в альфе, а в пре-альфе, но мы тут просто любим странное, ставь 🕊, если просто заходишь сюда почитать про непонятное и удивительное)Начнем с простого: print('Hello world') Запустим: crabpy transpile ex.py и получим:fn main() { println!("Hello world"); }
    GitHubGitHub - kushaldas/spicycrabContribute to kushaldas/spicycrab development by creating an account on GitHub.
    11,60016835151164Открыть в Telegram
  • Находки в опенсорсе

    16 июн., 14:14

    Почему msgspec такой быстрый?Несколько дней назад я решил разобраться в устройстве msgspec. Получилось како бычно: я напал на него со своими PRами, мне через день выдали права на merge и release. Но самое главное: теперь я могу рассказать вам про внутреннее устройство самого быстрого сериализатора для json в питоне.Как быстро распарсить json?Традиционные парсеры json делают так: - Парсим весь json документ - Используем промежуточный слой для хранения json как примитивных Python объектов: dict, list, int, str, None, тд - Превращаем Python объекты в финальный вариант: датаклассы, модели, более сложные типы, тдmsgspec использует несколько важных хитростей, чтобы парсить json наиболее быстрым способом. Пример:>>> import msgspec >>> class User(msgspec.Struct): ... username: str ... email: str ... >>> decoder = msgspec.json.Decoder(User)
    GitHubPull requests · msgspec/msgspecA fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML - Pull requests · msgspec/msgspec
    10,20089591811Открыть в Telegram
  • Находки в опенсорсе

    8 июн., 15:41

    Зеркало PyPIНа нескольких проектах последние несколько дней сталкиваемся с проблемами с доступом к PyPI: как локально, так и в CI. Печально.All attempts to connect to pypi.org failed.Probable Causes: - the server is not responding to requests at the moment - the hostname cannot be resolved by your DNS - your network is not connected to the internetЕсли у вас есть такая же проблема, можете воспользоваться PyPI зеркалом от GitVerse: https://gitverse.ru/docs/artifactory/registry-mirrors/pypi-mirror?utm_source=tg&utm_medium=fix&utm_campaign=bloggers&utm_content=post&utm_term=nikitasobolev&utm_erid=2VfnxxwjcVpВсе пакеты и все версии, которые есть на PyPI - оттуда тоже доступны. Перевел консалтинговые проекты - заработало.Как настроить?pip, документация:# Установка одного пакета:
    python-poetry.orgRepositories | Documentation | Poetry - Python dependency management and packaging made easyRepositories Poetry supports the use of PyPI and private repositories for discovery of packages as well as for publishing your projects. By default, Poetry is configured to use the PyPI repository, for package installation and publishing. So, when you add…
    14,000797147201916Открыть в Telegram
  • Находки в опенсорсе

    5 июн., 12:10

    Анонс стрима: "работаем над lazy import'ами в CPython и плачем под аниме" (на превью - я на стриме) Мы с @nkhitrov_blog, @fastnewsdev и Денисом Аникиным (в 2026 и без тг канала!) решили замутить стрим по питону и ... новый канал на ютюбе под названием "Вялые
    GitHubImprove lazy imports syntax errors · Issue #150459 · python/cpythonFeature or enhancement Currently there are several cases that can be improved when there are syntax errors in the code. The most important one in my opinion is from os lazy import path. This is the...
    10,7007647131Открыть в Telegram
  • Находки в опенсорсе

    3 июн., 16:09

    Анонс стрима: "работаем над lazy import'ами в CPython и плачем под аниме" (на превью - я на стриме) Мы с @nkhitrov_blog, @fastnewsdev и Денисом Аникиным (в 2026 и без тг канала!) решили замутить стрим по питону и ... новый канал на ютюбе под названием "Вялые
    YouTubeРаботаем над lazy import'ами в CPython и плачем под анимеО чем будет первый стрим? - Обсудим мотивацию и устройство PEP-810, потестим разные странные случае, Никита побомбит - Я запилю каких-нибудь пару тасочек в CPython - Если я буду плохо рассказывать, что там происходят - пацаны будут меня душить своими любимыми…
    9,690332121Открыть в Telegram