#!/usr/bin/env python import defl import json from defl import log, cl from defl.testing_ import Tester from defl import DotDict from dataclasses import dataclass, field, KW_ONLY import sys import re import os import enum import itertools from functools import partial, partialmethod from time import sleep from operator import itemgetter from defl import log, cl, Path, Undefined, Null from defl import CLIError from defl._typing_ import * import defl tester = Tester(name=__file__) @dataclass(slots=True, kw_only=False, frozen=False) class OverrideMe: ClassLevel: ClassVar = 1 @tester.add() def override(): om = defl.Overrider('level1', 'level2', default=0) assert om.result == 0 om.level2 = 2 assert om.result == 2 om.level1 = 1 assert om.result == 2 om = defl.Overrider('level1', 'level2', default=0) assert om.r == 0 om.level1 = 1 assert om.r == 1 om.level2 = 2 assert om.r == 2 def classResolve(): return OverrideMe.ClassLevel classResolve.overrideResolve = True om = defl.Overrider('level1', 'level2', default=classResolve) assert om.r == 1 OverrideMe.ClassLevel = 2 assert om.r == 2 log.info(tester.run()) tester.exitWithStatus() # for i in ch: # print(defl.printTable([[y for y in x] for x in ch], squareFill=True))