Я работаю над выпуском 3.7.1 Transcrypt компилятора Python to JavaScript.
Частью процедуры выпуска является тест на отгрузку, в котором Transcrypt тестируется совместно с CPython.
Раньше он работал безупречно с бета-версией CPython 3.7, но с релизом есть проблема.
Программа:
from dataclasses import dataclass
from typing import ClassVar
@dataclass
class Test:
x: ClassVar = 10
y: int = 10
t = Test ()
t.x = 20
print (repr (t))
используется для печати (с использованием CPython):
Test(x=20, y=10)
но с выпуском он печатает (опять же только с использованием CPython):
Test(y=10)
Таким образом, она исключает переменную класса x из представления.
Может кто-нибудь сказать мне, является ли это изменение преднамеренным,
и где я могу найти обсуждение, которое оправдывает это?
С этим изменением Transcrypt ведет себя не так, как CPython, чего я не хочу.
Поэтому мне интересно, должен ли я адаптировать Transcrypt или мне следует считать это регрессией CPython и ждать, пока она не будет решена.