コード例 #1
0
ファイル: lang.py プロジェクト: virajs/edgedb
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
ファイル: lang.py プロジェクト: virajs/edgedb
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)
コード例 #3
0
ファイル: lang.py プロジェクト: virajs/edgedb
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)
コード例 #4
0
ファイル: doc.py プロジェクト: virajs/edgedb
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')
コード例 #5
0
ファイル: doc.py プロジェクト: virajs/edgedb
class Section(DocMarkup):
    title = Field(str, coerce=True, default=None)
    body = Field(base.MarkupList, coerce=True)
    collapsed = Field(bool, coerce=True, default=False)
コード例 #6
0
ファイル: doc.py プロジェクト: virajs/edgedb
class Marker(DocMarkup):
    text = Field(str)
コード例 #7
0
ファイル: lang.py プロジェクト: virajs/edgedb
class TreeNodeChild(BaseObject):
    label = Field(str, default=None)
    node = Field(base.Markup)
コード例 #8
0
ファイル: lang.py プロジェクト: virajs/edgedb
class Traceback(BaseObject):
    items = Field(TracebackPointList, default=TracebackPointList, coerce=True)
コード例 #9
0
class SpecialListNode(_SpecialListNode):
    node = Field(_SpecialListNode, default=None)
コード例 #10
0
ファイル: lang.py プロジェクト: virajs/edgedb
class BaseObject(LangMarkup):
    """Base language object with ``id``, but without ``attributes``."""

    id = Field(int, default=None, coerce=True)
コード例 #11
0
ファイル: lang.py プロジェクト: virajs/edgedb
class Ref(LangMarkup):
    ref = Field(int, coerce=True)
    refname = Field(str, default=None)

    def __repr__(self):
        return '<{} {} {}>'.format('Ref', self.refname, self.ref)
コード例 #12
0
ファイル: lang.py プロジェクト: virajs/edgedb
class String(LangMarkup):
    str = Field(str, default=None, coerce=True)
コード例 #13
0
ファイル: lang.py プロジェクト: virajs/edgedb
class Number(LangMarkup):
    num = Field(str, default=None, coerce=True)
コード例 #14
0
ファイル: lang.py プロジェクト: virajs/edgedb
class ExceptionContext(BaseObject):
    title = Field(str, default='Context')
    body = Field(base.MarkupList, coerce=True)
コード例 #15
0
ファイル: doc.py プロジェクト: virajs/edgedb
class Text(DocMarkup):
    text = Field(str)
コード例 #16
0
ファイル: doc.py プロジェクト: virajs/edgedb
class SourceCode(DocMarkup):
    text = Field(str)
コード例 #17
0
ファイル: lang.py プロジェクト: virajs/edgedb
class Object(BaseObject):
    class_module = Field(str)
    classname = Field(str)
    repr = Field(str, default=None)
    attributes = Field(base.MarkupMapping, default=None, coerce=True)
コード例 #18
0
ファイル: doc.py プロジェクト: virajs/edgedb
class ValueDiff(DocMarkup):
    before = Field(str)
    after = Field(str)
コード例 #19
0
ファイル: lang.py プロジェクト: virajs/edgedb
class List(BaseObject):
    items = Field(base.MarkupList, default=base.MarkupList, coerce=True)
    trimmed = Field(bool, default=False)
コード例 #20
0
ファイル: base.py プロジェクト: virajs/edgedb
class SerializationError(Markup):
    """An error during object serialization occurred."""

    text = Field(str)
    cls = Field(str)
コード例 #21
0
ファイル: lang.py プロジェクト: virajs/edgedb
class Dict(BaseObject):
    items = Field(base.MarkupMapping, default=base.MarkupMapping, coerce=True)
    trimmed = Field(bool, default=False)