Да, оно существует. Под капотом низкоуровневая магия, из самого понятного - оно позволяет создавать поддельные объекты на куче. Можно создать байтовый массив с базовым адресом 0 и длинной SSIZE_MAX, что даст доступ к сырой памяти, на чтение и запись. Такая техника, кстати, используется в эксплоитах движков javascript. Парочкой похожих эксплоитов уже давно хакают PS4.
Коробка с питоном
Заметки от Python-разработчика: сниппеты, обзоры пакетов, новости и другая полезная информация.
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20Итак, ко мне пришли ребята из Podlodka Python Crew и предложили разыграть один бесплатный билет на новый сезон их конференции, где участников с 3 по 7 июня будет ждать целая неделя онлаин-воркшопов и много докладов по теме инфраструктуры. Из интересного: — К ним придёт разработчик FastStream, про который я неоднократно рассказывал здесь, покажет насколько удобно можно работать с Kafka, RabbitMQ, NATS и другими брокерами. — Для енжоеров микросервисной архитектуры расскажут и покажут, как гарантир...
Итак, ко мне пришли ребята из Podlodka Python Crew и предложили разыграть один бесплатный билет на новый сезон их конференции, где участников с 3 по 7 июня будет ждать целая неделя онлаин-воркшопов и много докладов по теме инфраструктуры. Из интересного:…
Совсем скоро (релиз запланирован на конец января - начало февраля) выйдет NumPy 2. Список изменений можно прочитать здесь, а информацию по миграции - здесь. Статус и анонсы можно читать здесь. Изменений в API очень много, поэтому рекомендую зайти в свои проекты и зафиксировать зависимости. По большей части релиз выглядит как рефакторинг API. Некоторые функции, модули, константы переместили или удалили, чтобы сделать неимспейсы более удобными и чистыми. Про это можно прочитать в NEP 52. Релиз так...
С наступившим 2024 вас! Сегодня расскажу про dirty-equals. Этот пакет используется для реализации более читаемых и декларативных проверок на равенство/соответствие, но в полной мере он себя раскрывает при написании тестов. Как обычно, приведу несколько примеров: from dirty_equals import * >>> assert 1 == IsPositive # Всё ок, число положительное >>> assert -2 == IsPositive # AssertionError >>> # Проверки можно комбинировать при помощи булевой логики >>> assert ['a', 'b', 'c'] == HasLen(3) & Conta...
Сегодня расскажу про модуль, который поможет остановить время в ваших тестах и не только - FreezeGun Сначала история из жизни. Недавно мне принесли скрипт, который скрапил некоторую информацию с онлаин-каталога на текущий момент. Задачей было заставить его скрапить данные до определенного момента. В нём было очень много вызовов datetime.now() (пагинация по датам, ага), перепиливать все это мне не очень хотелось, а результат хотели вчера. Поэтому я такой хоп: from freezegun import freeze_time wit...
Тренажер по тайпингу в Python для самых маленьких (и не только) Python Type Challenges, очень прикольный сайт-тренажер для изучения типизации. Выбираешь тему, дописываешь необходимые куски кода и запускаешь проверку линтером. Почти как олимпиадные задачки, только полезные😁 Для некоторых задач доступны подсказки со ссылками на документацию. Проверить свои знания по типам сюда Посмотреть исходный код сюда
Там в Python 3.12 добавили нашумевший PEP 659, а у меня пет-проект один давно не обновлялся, и так уж звёзды сошлись, что я сижу второй день обновляю его на 3.12 Задача - есть функционал, который под капотом имеет некоторый класс следующего вида: class BaseFunction: serialize_to: None def serialize(self, data: dict) -> serialize_to: pass # тут мы используем наш serialize_to @dataclass class ModelA: x: str class FunctionA(BaseFunction): serialize_to: ModelA Мы определяем новые классы наследуясь о...
niquests - молодой преемник requests Долгое-долгое время всеми нами любимая библиотека request для http запросов была де-факто стандартом. Но время шло, в питоне появилось нормальное асинхронное программирование, технологии развивались, а requests никак не адаптировался к изменениям - у них там гордый feature freeze. Когда у меинтейнеров спрашивали, как там насчёт асинка, видите ли, requests - это "feature-complete piece of software at this time", да и вообще есть весомые причины. Вот так и жили...
Подписчиков набежало, а постов всё так же не было. Буду исправляться! Сегодня расскажу про deptry - тулзу, которая позволяет находить неиспользованные, транзитивные или отсутствующие зависимости в проекте на Python. Работает это следующим образом - запускаем утилиту в каталоге с проектом, она сканит все импортированные модули и сравнивает их с тем, что описано в зависимостях. Умеет работать с любым пакетным менеджером который строго следует PEP 621, а так же pyproject.toml от Poetry и PDM. Ну и ...