class F(metaclass=Classtools, slots=True): none = 'conventional class variable' a: Any = ... b: attr = 0 | lazy('get_b') c: attr = 1 | lazy('get_c') d: ClassVar[str] = Attr('d', lazy=False) e: int = 1 | lazy('get_e') | skip with OPTIONS | lazy('get_section'): f: attr = 8 g: bool = True / lazy h: Any = Attr('replace', lazy='get_h') k: attr = ... | lazy('get_k') | const m: attr = () | lazy('get_m') | const | skip n: ClassVar[tuple] = () / lazy('dont_care') def get_b(self): raise GetterError def get_c(self): return 'c_value' def get_section(self): return 'section_value' def get_e(self): raise GetterError def get_h(self): return 'h_value' def get_k(self): return 'k_value' def get_m(self): return ('m_value', ) * 3
class K(metaclass=Classtools, slots=True): none = 'conventional class variable' a: Any = ... b: attr = ... | skip p: attr = ... | const j: attr = ... | lazy('get_j') c: attr = [1, 2, 3] d: ClassVar[str] = Attr({1: 'a'}) e: int = 'will be replaced with []' f: attr = ClassCopy() g: attr = ClassNoCopy() h: Any = Attr('replace', tag='tag_h') m: attr = {} | tag('max options') | lazy('get_m') | const | kw n: ClassVar[list] = [] def get_m(self): return ['m_value'] def get_j(self): return ['j_value']
class M(metaclass=Classtools, slots=True, init=False): none = 'conventional class variable' a: Any = ... b: attr = ... | skip p: attr = ... | const j: attr = ... | lazy('get_j') c: attr = [1, 2, 3] d: ClassVar[str] = {1: 'a'} e: str = 'e' f: attr = Attr() | kw g: attr = 'g' | kw h: Any = Attr(42, tag='tag_h') m: attr = {} | tag('max options') | lazy('get_m') | const | kw n: ClassVar[list] = [] def get_m(self): return 'm_value' def get_j(self): return 'j_value'
class H(metaclass=Classtools, slots=True): none = 'conventional class variable' a: Any = ... b: attr = ... | kw e: ClassVar[str] = Attr('e_classvar', kw=False) f: int = 1 / kw | skip with OPTIONS(kw=True): g: attr = 8 h: bool = True / kw k: Any = Attr('replace', tag='tag_h') m: attr = () | tag('tag_m') | lazy('get_m') | const | skip n: ClassVar[Union[str, int]] = 'n_classvar' def get_m(self): return 'm_value'
class G(metaclass=Classtools, slots=True): none = 'conventional class variable' a: Any = ... b: attr = ... | tag(object) | skip k: attr = ... | tag('tag_k') | const c: attr = 1 | tag('tag_c') d: ClassVar[str] = Attr('b', tag=None) e: int = 1 | tag('tag_e') | skip with TAG('tag_section'): f: attr = 8 g: bool = True / tag h: Any = Attr('replace', tag='tag_h') m: attr = () | tag('tag_m') | lazy('get_m') | const | skip n: ClassVar[tuple] = () / tag('dont_care') def get_m(self): return 'm_value'
class F_CONST_ERROR(metaclass=Classtools, slots=True): a: ClassVar[int] = -1 | lazy('get_n') | const