当前位置: 首页>>代码示例>>Python>>正文


Python FORA.getCodeLocation方法代码示例

本文整理汇总了Python中ufora.native.FORA.getCodeLocation方法的典型用法代码示例。如果您正苦于以下问题:Python FORA.getCodeLocation方法的具体用法?Python FORA.getCodeLocation怎么用?Python FORA.getCodeLocation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ufora.native.FORA的用法示例。


在下文中一共展示了FORA.getCodeLocation方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: exceptionCodeLocationsAsJson

# 需要导入模块: from ufora.native import FORA [as 别名]
# 或者: from ufora.native.FORA import getCodeLocation [as 别名]
    def exceptionCodeLocationsAsJson(self, stacktraceAndVarsInScope):
        hashes = stacktraceAndVarsInScope[0].getStackTrace()

        if hashes is None:
            return None

        codeLocations = [ForaNative.getCodeLocation(h) for h in hashes]
        codeLocations = [c for c in codeLocations if c is not None]

        def formatCodeLocation(c):
            if not c.defPoint.isExternal():
                return None
            def posToJson(simpleParsePosition):
                return {
                    'characterOffset': simpleParsePosition.rawOffset,
                    'line': simpleParsePosition.line,
                    'col': simpleParsePosition.col
                    }
            return {
                'path': list(c.defPoint.asExternal.paths),
                'range': {
                    'start': posToJson(c.range.start),
                    'stop': posToJson(c.range.stop)
                    }
                }

        return {
            'stacktrace': [
                x for x in [formatCodeLocation(c) for c in codeLocations] if x is not None
                ]
            }
开发者ID:Sandy4321,项目名称:ufora,代码行数:33,代码来源:Converter.py

示例2: test_extractStacktrace

# 需要导入模块: from ufora.native import FORA [as 别名]
# 或者: from ufora.native.FORA import getCodeLocation [as 别名]
    def test_extractStacktrace(self):
        text = """fun() {
            let x = 0;
            let v = [1,2,3]
            while (x < 100000) {
                x = x + 1
                }
            (x,v)
            }"""

        self.runtime = Runtime.getMainRuntime()
        #self.dynamicOptimizer = self.runtime.dynamicOptimizer

        vdm = FORANative.VectorDataManager(callbackScheduler, Setup.config().maxPageSizeInBytes)
        context = ExecutionContext.ExecutionContext(
            dataManager = vdm,
            allowInterpreterTracing = False
            )

        context.interruptAfterCycleCount(1000)

        context.evaluate(
            FORA.extractImplValContainer(FORA.eval(text)),
            FORANative.symbol_Call
            )

        trace = context.extractStacktrace(True)

        self.assertTrue(len(trace) == 1)

        stacktrace = trace[0][0]
        frameData = trace[0][1]

        codeLocation = FORANative.getCodeLocation(stacktrace.getIDs()[0])
        self.assertTrue(codeLocation is not None)


        self.assertTrue(frameData.wasCompiled is False)
        self.assertTrue(len(frameData.inScopeValues) == 2)
        self.assertTrue([str(x) for x in frameData.inScopeValues.keys] == ['x', 'v'])

        values = [frameData.inScopeValues[x] for x in frameData.inScopeValues.keys]
        self.assertTrue(values[0].isInt64())
        self.assertTrue(values[1].isVector())

        context.teardown()
开发者ID:Sandy4321,项目名称:ufora,代码行数:48,代码来源:ExecutionContext_test.py

示例3: exceptionCodeLocationsAsJson

# 需要导入模块: from ufora.native import FORA [as 别名]
# 或者: from ufora.native.FORA import getCodeLocation [as 别名]
    def exceptionCodeLocationsAsJson(self):
        if self.valueIVC.isTuple():
            tup = self.valueIVC.getTuple()
            if len(tup) != 2:
                return None

            _, stacktraceAndVarsInScope = self.valueIVC.getTuple()
            hashes = stacktraceAndVarsInScope[0].getStackTrace()

            if hashes is None:
                return None

            codeLocations = [ForaNative.getCodeLocation(h) for h in hashes]

            def formatCodeLocation(c):
                if c is None:
                    return None
                if not c.defPoint.isExternal():
                    return None
                def posToJson(simpleParsePosition):
                    return {
                        'characterOffset': simpleParsePosition.rawOffset,
                        'line': simpleParsePosition.line,
                        'col': simpleParsePosition.col
                        }
                return {
                    'path': list(c.defPoint.asExternal.paths),
                    'range': {
                        'start': posToJson(c.range.start),
                        'stop': posToJson(c.range.stop)
                        }
                    }

            # return [x for x in [formatCodeLocation(c) for c in codeLocations] if x is not None]
            return [x for x in [formatCodeLocation(c) for c in codeLocations if c is not None] if x is not None]


        else:
            return None
开发者ID:vishnur,项目名称:ufora,代码行数:41,代码来源:PyforaComputedValue.py

示例4: formatStackTraceHash

# 需要导入模块: from ufora.native import FORA [as 别名]
# 或者: from ufora.native.FORA import getCodeLocation [as 别名]
def formatStackTraceHash(hash, valuesInScope, lines=1):
    codeLocation = ForaNative.getCodeLocation(hash)
    if codeLocation is not None:
        return formatCodeLocation(codeLocation, valuesInScope, lines)
    else:
        return ""
开发者ID:vishnur,项目名称:ufora,代码行数:8,代码来源:ErrorFormatting.py


注:本文中的ufora.native.FORA.getCodeLocation方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。