예제 #1
0
class TreeNode(BaseObject):
    name = Field(str)
    children = Field(
        TreeNodeChildrenList, default=TreeNodeChildrenList, coerce=True)

    def add_child(self, *, label=None, node):
        self.children.append(TreeNodeChild(label=label, node=node))
예제 #2
0
class List(BaseObject):
    items = Field(  # type: ignore[assignment]
        base.MarkupList,
        default=base.MarkupList,
        coerce=True)
    trimmed = Field(bool, default=False)
    brackets = Field(str, default="[]")
예제 #3
0
class Exception(_Exception):
    msg = Field(str)

    # NB: Traceback is just an exception context
    #
    contexts = Field(ExceptionContextList, default=None, coerce=True)

    context = Field(_Exception, None)
    cause = Field(_Exception, None)
예제 #4
0
class TracebackPoint(BaseObject):
    name = Field(str)
    filename = Field(str)
    lineno = Field(int, default=None)
    colno = Field(int, default=None)
    address = Field(str, default=None)
    context = Field(bool, default=False)

    lines = Field(checked.CheckedList[str], default=None, coerce=True)
    line_numbers = Field(checked.CheckedList[int], default=None, coerce=True)

    locals = Field(Dict, default=None)

    def load_source(self, window=3, lines=None):
        self.lines = self.line_numbers = None

        if (self.lineno
                and ((self.filename and not self.filename.startswith('<')
                      and not self.filename.endswith('>')) or lines)):

            lineno = self.lineno

            if not lines:
                linecache.checkcache(self.filename)
                sourcelines = linecache.getlines(self.filename, globals())
            else:
                sourcelines = lines

            lines = []
            line_numbers = []

            start = max(1, lineno - window)
            end = min(len(sourcelines), lineno + window) + 1
            for i in range(start, end):
                lines.append(sourcelines[i - 1].rstrip())
                line_numbers.append(i)

            if lines:
                self.lines = checked.CheckedList[str](lines)
                self.line_numbers = checked.CheckedList[int](line_numbers)
예제 #5
0
class Diff(DocMarkup):
    lines = Field(typed.StrList, coerce=True)

    @classmethod
    def get_diff(
            cls, a, b, fromfile='', tofile='', fromfiledate='', tofiledate='',
            n=10):

        lines = difflib.unified_diff(
            a, b, fromfile, tofile, fromfiledate, tofiledate, n)
        lines = [line.rstrip() for line in lines]

        if lines:
            return cls(lines=lines)
        else:
            return Text(text='No differences')
예제 #6
0
class String(LangMarkup):
    str = Field(str, default=None, coerce=True)
예제 #7
0
class Ref(LangMarkup):
    ref = Field(int, coerce=True)
    refname = Field(str, default=None)

    def __repr__(self):
        return '<{} {} {}>'.format('Ref', self.refname, self.ref)
예제 #8
0
class PickleTestMixed(MixedStruct):
    a = Field(str, default='42')
    b = Field(int)
예제 #9
0
class Number(LangMarkup):
    num = Field(str, default=None, coerce=True)
예제 #10
0
class Marker(DocMarkup):
    text = Field(str)
예제 #11
0
 class Test(Struct):
     field = Field(str, None)
예제 #12
0
class Dict(BaseObject):
    items = Field(  # type: ignore[assignment]
        base.MarkupMapping,
        default=base.MarkupMapping,
        coerce=True)
    trimmed = Field(bool, default=False)
예제 #13
0
class Dict(BaseObject):
    items = Field(base.MarkupMapping, default=base.MarkupMapping, coerce=True)
    trimmed = Field(bool, default=False)
예제 #14
0
class Traceback(BaseObject):
    items = Field(  # type: ignore[assignment]
        TracebackPointList,
        default=TracebackPointList,
        coerce=True)
예제 #15
0
 class Test(RTStruct):
     field = Field(int, coerce=True)
예제 #16
0
class ValueDiff(DocMarkup):
    before = Field(str)
    after = Field(str)
    comment = Field(str, default=None)
예제 #17
0
class SpecialListNode(_SpecialListNode):
    node = Field(_SpecialListNode, default=None)
예제 #18
0
 class DTest(Test):
     field2 = Field(int, None)
예제 #19
0
class BaseObject(LangMarkup):
    """Base language object with ``id``, but without ``attributes``."""

    id = Field(int, default=None, coerce=True)
예제 #20
0
class Text(DocMarkup):
    text = Field(str)
예제 #21
0
class Object(BaseObject):
    class_module = Field(str)
    classname = Field(str)
    repr = Field(str, default=None)
    attributes = Field(base.MarkupMapping, default=None, coerce=True)
예제 #22
0
class ValueDiff(DocMarkup):
    before = Field(str)
    after = Field(str)
예제 #23
0
class TreeNodeChild(BaseObject):
    label = Field(str, default=None)
    node = Field(base.Markup)
예제 #24
0
 class Test(Struct):
     field1 = Field(str, default='42')
     field2 = Field(bool)
예제 #25
0
class Section(DocMarkup):
    title = Field(str, coerce=True, default=None)
    body = Field(base.MarkupList, coerce=True)
    collapsed = Field(bool, coerce=True, default=False)
예제 #26
0
 class Test(RTStruct):
     field = Field(int)
예제 #27
0
class SourceCode(DocMarkup):
    text = Field(str)
예제 #28
0
class Traceback(BaseObject):
    items = Field(TracebackPointList, default=TracebackPointList, coerce=True)
예제 #29
0
파일: base.py 프로젝트: xing0713/edgedb
class SerializationError(Markup):
    """An error during object serialization occurred."""

    text = Field(str)
    cls = Field(str)
예제 #30
0
class ExceptionContext(BaseObject):
    title = Field(str, default='Context')
    body = Field(base.MarkupList, coerce=True)