Esempio n. 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))
Esempio n. 2
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)
Esempio n. 3
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(typed.StrList, default=None, coerce=True)
    line_numbers = Field(typed.IntList, 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 = typed.StrList(lines)
                self.line_numbers = typed.IntList(line_numbers)
Esempio n. 4
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')
Esempio n. 5
0
class Ref(LangMarkup):
    ref = Field(int, coerce=True)
    refname = Field(str, default=None)

    def __repr__(self):
        return '<{} {} {}>'.format('Ref', self.refname, self.ref)
Esempio n. 6
0
class String(LangMarkup):
    str = Field(str, default=None, coerce=True)
Esempio n. 7
0
 class Test(MixedStruct):
     field1 = Field(type=str, default='42', frozen=True)
     field2 = Field(type=bool)
Esempio n. 8
0
class PickleTest(Struct):
    a = Field(str, default='42')
    b = Field(int)
Esempio n. 9
0
class TreeNodeChild(BaseObject):
    label = Field(str, default=None)
    node = Field(base.Markup)
Esempio n. 10
0
class List(BaseObject):
    items = Field(base.MarkupList, default=base.MarkupList, coerce=True)
    trimmed = Field(bool, default=False)
Esempio n. 11
0
 class Test(MixedStruct):
     field1 = Field(type=str, default='42')
     field2 = Field(type=bool)
Esempio n. 12
0
 class DTest(Test):
     field2 = Field(int, None)
Esempio n. 13
0
 class Test(Struct):
     field = Field(str, None)
Esempio n. 14
0
 class Test(Struct):
     field = Field(type=int)
Esempio n. 15
0
 class Test(Struct):
     field = Field(type=int, coerce=True)
Esempio n. 16
0
class PickleTestMixed(MixedStruct):
    a = Field(str, default='42')
    b = Field(int)
Esempio n. 17
0
class BaseObject(LangMarkup):
    """Base language object with ``id``, but without ``attributes``."""

    id = Field(int, default=None, coerce=True)
Esempio n. 18
0
class Object(BaseObject):
    class_module = Field(str)
    classname = Field(str)
    repr = Field(str, default=None)
    attributes = Field(base.MarkupMapping, default=None, coerce=True)
Esempio n. 19
0
class Marker(DocMarkup):
    text = Field(str)
Esempio n. 20
0
class Dict(BaseObject):
    items = Field(base.MarkupMapping, default=base.MarkupMapping, coerce=True)
    trimmed = Field(bool, default=False)
Esempio n. 21
0
class Text(DocMarkup):
    text = Field(str)
Esempio n. 22
0
class Traceback(BaseObject):
    items = Field(TracebackPointList, default=TracebackPointList, coerce=True)
Esempio n. 23
0
class SerializationError(Markup):
    """An error during object serialization occurred."""

    text = Field(str)
    cls = Field(str)
Esempio n. 24
0
class Section(DocMarkup):
    title = Field(str, coerce=True, default=None)
    body = Field(base.MarkupList, coerce=True)
    collapsed = Field(bool, coerce=True, default=False)
Esempio n. 25
0
class ExceptionContext(BaseObject):
    title = Field(str, default='Context')
    body = Field(base.MarkupList, coerce=True)
Esempio n. 26
0
class SourceCode(DocMarkup):
    text = Field(str)
Esempio n. 27
0
class Number(LangMarkup):
    num = Field(str, default=None, coerce=True)
Esempio n. 28
0
class ValueDiff(DocMarkup):
    before = Field(str)
    after = Field(str)
Esempio n. 29
0
class SpecialListNode(_SpecialListNode):
    node = Field(_SpecialListNode, default=None)