Python Portal
55.4K subscribers
2.46K photos
400 videos
51 files
1.01K links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
В Python 3.15 появится полноценный иммутабельный словарь.

В модуль builtins добавляется новый публичный неизменяемый тип frozendict.

Ожидается, что frozendict будет “safe by design”, потому что он предотвращает любые непреднамеренные изменения. Это полезно не только для стандартной библиотеки CPython, но и для сторонних мейнтейнеров: можно опираться на надежный неизменяемый тип словаря.

Зачем это вообще нужно:

▪️Хочешь использовать мапу как ключ в другом dict или засунуть в set? Обычный dict нельзя, а frozendict можно (если значения тоже хэшируемые).
▪️ @functools.lru_cache() и аргументы-словари: с dict будет сложно, с frozendict нормально.
▪️Дефолты в аргументах функций: вместо “мутабельного дефолта” можно давать frozendict(...) и не ловить сюрпризы.

Как выглядит по API:

▪️Конструктор “как у dict”: frozendict(), frozendict(**kwargs), frozendict(mapping) или iterable пар, плюс можно смешивать с **kwargs.
▪️Порядок вставки сохраняется (как в обычном dict).
▪️Хэш не зависит от порядка элементов (логика через frozenset(items)), и сравнение тоже по содержимому, а не по порядку.
▪️Есть объединение через | и “обновление” |= (но |= не мутирует объект, а создает новый).
▪️.copy() в CPython по сути возвращает тот же объект (shallow), а если надо глубоко, то copy.deepcopy().
Важный момент: frozendict НЕ наследуется от dict. Это специально, чтобы нельзя было обойти “неизменяемость” вызовом dict.__setitem__ и подобных трюков.

И бонус для stdlib: авторы наметили места, где можно заменить константные/публичные мапы на frozendict (в том числе там, где сейчас MappingProxyType).

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135
Разраб придумал гениальную капчу против ИИ-агентов: чтобы записаться к нему на созвон, нужно 10 раз громко сказать «NIGGA».

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40🤣18🤯3🔥1
Посмотрим как ты знаешь классы в Python 🤩

Вопрос по Python:

Какой будет вывод у этого кода и почему?

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍11🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Этот тул умеет скачивать буквально что угодно по ссылке

100% бесплатно. опенсорс. без рекламы.

https://cobalt.tools/

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯61👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Делюсь этим Python-скриптом под OSINT: это простая, но полезная штука для расследований по возможным группам киберпреступности, потому что она позволяет в реальном времени логировать статусы присутствия в Telegram. Мониторинг определяет такие состояния:

- В СЕТИ
- БЫЛ(А)
- БЫЛ(А) НЕДАВНО
- БЫЛ(А) НА ЭТОЙ НЕДЕЛЕ
- БЫЛ(А) В ЭТОМ МЕСЯЦЕ
- БЫЛ(А) ОЧЕНЬ ДАВНО
- СТАТУС НЕИЗВЕСТЕН

Хотя это только видимые метаданные, анализ временных паттернов может помочь заметить синхронные всплески активности, возможные смены между аккаунтами, повторное использование профилей или профили, которые выглядят разными, но ведут себя синхронно.

Бот может работать по запросу (через кнопку проверки), но его также можно доработать под мониторинг изменений в реальном времени, логирование переходов статусов и авто-алерты, когда аккаунт становится В СЕТИ или меняет паттерн активности. Это позволяет заранее видеть операционные пики, выявлять неактивные или приманочные аккаунты и усиливать стратегический анализ, строго в рамках закона и для легитимных целей исследования.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥41