Сегодня будет пост для тех, кто любит заглядывать в будущее.
Поговорим про то, что только-только начинают делать в питончике.
JIT и FT
https://github.com/python/cpython/issues/139038
Описывает планы на 3.15 и 3.16 по развитию JIT.
Самое важное планируют:
- Сделать JIT на 5-10% быстрее для всех случаев, до 50% скорости для краевых случаев
- Трассирующий JIT: https://github.com/python/cpython/issues/139109
- Поддежка Free-Threading режима: https://github.com/python/cpython/issues/133171
- К 3.16 планируют найти еще 2х меинтейнеров, потому что сейчас очень мало людей работают над джитом. Если всегда хотели - присоединяйтесь!
https://discuss.python.org/t/pre-pep-safe-parallel-python/103636
Обсуждение по будущему FT и subinterpreters как практических концепций.
Марк Шеннон предлагает сделать из Python Erlang 🌚
Каждому объекту предлагают добавить:
- Метод
__freeze__() в большинство классов, чтобы делать объект иммутабельным (чтобы можно его было шарить между потоками и интерпретаторами)- Метод
__protect__(self: Self, obj: T) -> T, чтобы помечать объекты как "защищенные". Их можно менять, но с мьютексом- И сам
__mutex__, чтобы работать с защищенными объектамиhttps://discuss.python.org/t/add-virtual-threads-to-python/91403
Еще одно предложение от Марка – virtual threads в Python!
Кажется, что не только мне не нравится
asyncio. Обсуждение на очень раннем шаге, можно принять участие :)
PEPs
https://peps.python.org/pep-0798 позволит нам писать вот такой код:
list_of_lists = [[1, 2], [3, 4]]
flat_list = [*l for l in list_of_lists]
Если ПЕП примут, то можно будет делать unpacking прямо в comprehension. Не надо будет делать цикл или городить всякое сложное внутри. Крутое предложение, думаю, что его примут.
https://peps.python.org/pep-0799
Кратко:
- Добавляет пакет
profiling в CPython- Чистый питоновский
profile теперь deprecated- В 3.15 добавили
profiling.sampling -
cProfile теперь будет доступен еще и как profile.tracinghttps://peps.python.org/pep-0728
Добавляет такую возможность в
TypedDict:
class Movie(TypedDict, extra_items=str):
name: str
rating: float
year: int
Что значит, что три ключа имеют явный тип, любые другие ключи имеют fallback тип
str. Что удобно, если у нас гигантский json с кучей похожих полей, например.И конечно можно будет указать такое:
class Movie(TypedDict, closed=True):
name: str
rating: float
year: int
Что будет значить, что никаких других ключей в словаре быть не может. Джва года ждал такую фичу!
https://peps.python.org/pep-0791 предлагает добавить новый модуль в Python:
intmathРешает старые проблемы модуля
math. Если интересуетесь математикой в питоне – ПЕП для вас.Обсуждение: как вам такой формат со ссылками? Что вы больше всего ждете из списка выше? Какие фичи вас бесят?
| Поддержать | YouTube | GitHub | Чат |