• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python native.FORA类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: test_joas

    def test_joas(self):
        #"test assertions about JOAs of particular axioms"
        for item in self.vals_to_test:
            jovt = self.getJOVT(item[0])

            if len(item) == 4:
                assert item[3] == "hasSideEffects", "illegal third argument to JOA"

            expected_joa = FORANative.JudgmentOnAction(
                    FORANative.parseStringToJOR(item[1]),
                    FORANative.parseStringToJOR(item[2]),
                    True if len(item) == 4 and item[3] == "hasSideEffects" else False
                    )
            computed_joa = self.joa(jovt)
            if computed_joa:
                self.assertTrue(
                    expected_joa.resultPart() == computed_joa.resultPart(),
                    "for JOVT %s should have had JOA resultPart: %s, but had: %s" \
                                % (jovt, expected_joa.resultPart(), computed_joa.resultPart())
                    )
                #be a little more relaxed on the throwParts
                self.assertTrue(
                    expected_joa.throwPart().covers(computed_joa.throwPart()),
                    "for JOVT %s: expected JOA throwPart %s does not cover computed JOA %s" \
                        % (jovt, expected_joa.throwPart(), computed_joa.throwPart())
                )
                if len(expected_joa.throwPart()) > 0:
                    self.assertTrue(
                        len(computed_joa.throwPart()) > 0,
                        "for JOVT %s: expected JOA %s throws, but computed JOA %s does not" \
                            %(jovt, expected_joa, computed_joa)
                    )
开发者ID:Sandy4321,项目名称:ufora,代码行数:32,代码来源:AxiomJOA_test.py


示例2: test_extractPausedComputationDuringVectorLoad

    def test_extractPausedComputationDuringVectorLoad(self):
        self.runtime = Runtime.getMainRuntime()
        #self.dynamicOptimizer = self.runtime.dynamicOptimizer

        vdm = FORANative.VectorDataManager(callbackScheduler, Setup.config().maxPageSizeInBytes)

        context = ExecutionContext.ExecutionContext(
            dataManager = vdm,
            allowInterpreterTracing = False
            )

        context.evaluate(
            FORA.extractImplValContainer(FORA.eval("fun() { [1,2,3].paged }")),
            FORANative.ImplValContainer(FORANative.makeSymbol("Call"))
            )

        pagedVec = context.getFinishedResult().asResult.result

        context.placeInEvaluationState(
            FORANative.ImplValContainer(
                (pagedVec,
                FORANative.ImplValContainer(FORANative.makeSymbol("GetItem")),
                FORANative.ImplValContainer(0))
                )
            )

        vdm.unloadAllPossible()

        context.resume()

        self.assertTrue(context.isVectorLoad())

        computation = context.extractPausedComputation()

        self.assertEqual(len(computation.frames),1)
开发者ID:Sandy4321,项目名称:ufora,代码行数:35,代码来源:ExecutionContext_test.py


示例3: test_createInstance_2

    def test_createInstance_2(self):
        classIvc = FORA.eval(
            """let C = class {
                   member y;
                   member x;
                   };
               C"""
        ).implVal_

        x = 1
        y = 2

        res = ForaNative.simulateApply(
            ForaNative.ImplValContainer(
                (
                    classIvc,
                    makeSymbolIvc("CreateInstance"),
                    ForaNative.ImplValContainer(y),
                    ForaNative.ImplValContainer(x),
                )
            )
        )

        self.assertIsNotNone(res)

        computed_x = ForaNative.simulateApply(
            ForaNative.ImplValContainer((res, self.Symbol_member, makeSymbolIvc("x")))
        )

        self.assertEqual(computed_x, ForaNative.ImplValContainer(x))
开发者ID:vishnur,项目名称:ufora,代码行数:30,代码来源:FunctionStage1Simulation_test.py


示例4: getCacheRequestComputationResult

def getCacheRequestComputationResult(cacheCallElement):
    bucketname = cacheCallElement[1].pyvalOrNone
    keyname = cacheCallElement[2].pyvalOrNone

    if not isinstance(bucketname, str) or not isinstance(keyname, str):
        return ForaNative.ComputationResult.Exception(
            ForaNative.ImplValContainer("Badly formed S3 dataset request: %s" % cacheCallElement)
            )

    s3Interface = getCurrentS3Interface()

    if s3Interface.keyExists(bucketname, keyname):
        keysAndSizesMatching = [(keyname, s3Interface.getKeySize(bucketname, keyname))]
    else:
        keysAndSizesMatching = s3Interface.listKeysWithPrefix(bucketname, keyname + "_")

        indicesKeysAndSizes = []

        for key, size, mtime in keysAndSizesMatching:
            try:
                index = int(key[len(keyname)+1:])
                indicesKeysAndSizes.append((index, key, size))
            except ValueError:
                pass

        keysAndSizesMatching = [(key, size) for _, key, size in sorted(indicesKeysAndSizes)]

    if not keysAndSizesMatching:
        return ForaNative.ComputationResult.Exception(
            ForaNative.ImplValContainer("No keys matching %s/%s using %s" % (
                bucketname,
                keyname,
                s3Interface
                ))
            )

    wholeVectorIVC = ForaNative.getEmptyVector()

    for key, size in keysAndSizesMatching:
        CHUNK_SIZE = 10 * 1024 * 1024

        chunks = getAppropriateChunksForSize(size, CHUNK_SIZE)

        for lowIndex, highIndex in chunks:
            externalDatasetDesc = ForaNative.ExternalDatasetDescriptor.S3Dataset(
                bucketname,
                key,
                lowIndex,
                highIndex
                )

            vectorDataId = ForaNative.VectorDataID.External(externalDatasetDesc)

            vectorIVC = ForaNative.createFORAFreeBinaryVector(vectorDataId, highIndex - lowIndex)

            wholeVectorIVC = ForaNative.concatenateVectors(wholeVectorIVC, vectorIVC)

    return ForaNative.ComputationResult.Result(wholeVectorIVC, ForaNative.ImplValContainer())
开发者ID:Sandy4321,项目名称:ufora,代码行数:58,代码来源:CacheSemantics.py


示例5: testMatchStructureCantMatchTooSmallTuple

    def testMatchStructureCantMatchTooSmallTuple(self):
        runtime = Runtime.getMainRuntime()
        axioms = runtime.getAxioms()

        jov = FORANative.parseStringToJOV("((1,2,3),`StructureMatch,((nothing, false), (nothing, false), (nothing, false), (nothing, false)))")

        axiom = axioms.getAxiomByJOVT(runtime.getTypedForaCompiler(), jov.asTuple.jov)

        self.assertTrue(list(axiom.asNative.resultSignature.resultPart().vals) == [FORANative.parseStringToJOV("nothing")])
开发者ID:Sandy4321,项目名称:ufora,代码行数:9,代码来源:TupleMatchStructureAxiom_test.py


示例6: test_vectorOfPagedVectorApplyWithDropping

    def test_vectorOfPagedVectorApplyWithDropping(self):
        self.desirePublisher.desireNumberOfWorkers(3, blocking=True)
        expr = FORA.extractImplValContainer(
            FORA.eval(
                """fun() {
                    let v =
                        Vector.range(20).apply(fun(ix) {
                            Vector.range(1250000.0+ix).paged
                            }).paged
                    let lookup = fun(ix) { v[ix] }
                    Vector.range(100).apply(fun(ix) { sum(0, 10**8); cached(lookup(ix)) })
                    v
                    }"""
                    )
            )
        computation1 = self.gateway.requestComputation(
            makeComputationDefinitionFromIVCs(
                expr,
                ForaNative.makeSymbol("Call")
                )
            )
        try:
            response = self.gateway.finalResponses.get(timeout=60.0)
        except Queue.Empty:
            response = None
        self.assertTrue(response is not None, response)

        self.gateway.deprioritizeComputation(computation1)

        self.desirePublisher.desireNumberOfWorkers(2, blocking=True)
        expr2 = FORA.extractImplValContainer(
            FORA.eval(
                """fun() {
                    let res = 0
                    for ix in sequence(10)
                        res = res + Vector.range(12500000+ix).sum()
                    return res
                    }"""
                    )
            )
        computation2 = self.gateway.requestComputation(
            makeComputationDefinitionFromIVCs(
                expr2,
                ForaNative.makeSymbol("Call")
                )
            )
        
        try:
            response = self.gateway.finalResponses.get(timeout=60.0)
        except Queue.Empty:
            response = None

        self.assertTrue(response is not None)
        self.assertTrue(response[1].isResult())

        self.gateway.deprioritizeComputation(computation2)
开发者ID:vishnur,项目名称:ufora,代码行数:56,代码来源:TestBase.py


示例7: test_resolveAxiomDirectly_VeryLongComputation

    def test_resolveAxiomDirectly_VeryLongComputation(self):
        vectorIVC = FORA.extractImplValContainer(FORA.eval("[]"))

        jov = ForaNative.parseStringToJOV(("({Vector([])}, `append, 2)"))

        joa = self.axioms.resolveAxiomDirectly(self.compiler, jov.getTuple())

        self.assertEqual(len(joa.throwPart()),0)
        self.assertEqual(len(joa.resultPart()),1)

        result = joa.resultPart()[0]

        self.assertEqual(result, ForaNative.parseStringToJOV("{Vector([{Int64}])}"))
开发者ID:Sandy4321,项目名称:ufora,代码行数:13,代码来源:Compiler_test.py


示例8: test_sortManySmallVectors

    def test_sortManySmallVectors(self):
        self.desirePublisher.desireNumberOfWorkers(4, blocking=True)
        
        expr = FORA.extractImplValContainer(
            FORA.eval(
                """fun() {
                    let shouldAllBeTrue = 
                    Vector.range(20, fun(o) {
                        sorting.isSorted(
                            sort(Vector.range(50000 + o, fun(x) { x / 10 }))
                            )
                        });
                    for s in shouldAllBeTrue {
                        if (not s)
                            return false
                        }

                    return true
                    }"""
                    )
            )

        response = self.evaluateWithGateway(
            makeComputationDefinitionFromIVCs(
                expr,
                ForaNative.makeSymbol("Call")
                )
            )

        self.assertTrue(response[1].isResult())
        self.assertTrue(response[1].asResult.result.pyval == True, response[1].asResult.result.pyval)
开发者ID:vishnur,项目名称:ufora,代码行数:31,代码来源:TestBase.py


示例9: reasonAboutExpression

    def reasonAboutExpression(self, expression, **variableJudgments):
        reasoner = FORANative.SimpleForwardReasoner(self.compiler, self.axioms, False)
        keys = sorted(list(variableJudgments.keys()))

        functionText = "fun(" + ",".join(['_'] + keys) + ") { " + expression + " }"

        frame = reasoner.reason(
            makeJovt(
                FORANative.parseStringToJOV(functionText), 
                *[FORANative.parseStringToJOV(variableJudgments[k]) for k in keys]
                )
            )

        self.dumpReasonerSummary(reasoner, frame)

        return frame
开发者ID:vishnur,项目名称:ufora,代码行数:16,代码来源:SimpleForwardReasoner_test.py


示例10: test_manyDuplicateCachecallsAndAdding

    def test_manyDuplicateCachecallsAndAdding(self):
        self.desirePublisher.desireNumberOfWorkers(2, blocking=True)
        
        expr = FORA.extractImplValContainer(
            FORA.eval(
                """fun() { 
                    Vector.range(20).papply(fun(x) { 
                        x + cached(sum(0,10**11))[0]
                        })
                    }"""
                    )
            )

        computationId = self.gateway.requestComputation(
            makeComputationDefinitionFromIVCs(
                expr,
                ForaNative.makeSymbol("Call")
                )
            )

        time.sleep(5)
        
        self.desirePublisher.desireNumberOfWorkers(4, blocking=True)

        try:
            response = self.gateway.finalResponses.get(timeout=240.0)
        except Queue.Empty:
            response = None

        self.assertTrue(response is not None)
        
        self.assertTrue(response[1].isResult())

        self.gateway.deprioritizeComputation(computationId)
开发者ID:vishnur,项目名称:ufora,代码行数:34,代码来源:TestBase.py


示例11: test_expensive_brownian

    def test_expensive_brownian(self):
        self.desirePublisher.desireNumberOfWorkers(2, blocking=True)

        expr = FORA.extractImplValContainer(
            FORA.eval(
                """fun() {
                    let brownian = fun(x,t) {
                        if (t == 0)
                            return sum(0.0, x * 10.0**7.0)
                        else
                            {
                            let (l,r) = cached(brownian(x - 1, t - 1), brownian(x + 1, t - 1));
                            return sum(0.0, x * 10.0**7.0) + l + r
                            }
                        }
                    brownian(0, 5)
                    }"""
                    )
            )

        response = self.evaluateWithGateway(
            makeComputationDefinitionFromIVCs(
                expr,
                ForaNative.makeSymbol("Call")
                )
            )

        self.assertTrue(response[1].isResult())
开发者ID:vishnur,项目名称:ufora,代码行数:28,代码来源:TestBase.py


示例12: test_sortALargeVectorWithFourWorkers

    def test_sortALargeVectorWithFourWorkers(self):
        self.desirePublisher.desireNumberOfWorkers(4, blocking=True)
        
        expr = FORA.extractImplValContainer(
            FORA.eval(
                """fun() {
                    let v = Vector.range(12500000, {_%3.1415926});

                    if (sorting.isSorted(sorting.sort(v))) 'sorted'
                    }"""
                    )
            )

        try:
            response = self.evaluateWithGateway(
                makeComputationDefinitionFromIVCs(
                    expr,
                    ForaNative.makeSymbol("Call")
                    ),
                timeout=120.0
                )
        except Queue.Empty:
            response = None

        if response is None:
            try:
                dumpFun = self.dumpSchedulerEventStreams
                dumpFun()
            except:
                logging.warn("Wanted to dump CumulusWorkerEvents, but couldn't");


        self.assertTrue(response is not None)
        self.assertTrue(response[1].isResult())
        self.assertTrue(response[1].asResult.result.pyval == 'sorted', response[1].asResult.result.pyval)
开发者ID:vishnur,项目名称:ufora,代码行数:35,代码来源:TestBase.py


示例13: test_vecWithinVec

    def test_vecWithinVec(self):
        self.desirePublisher.desireNumberOfWorkers(4, blocking=True)
        
        expr = FORA.extractImplValContainer(
            FORA.eval(
                """fun() {
                    let v = 
                        Vector.range(10) ~~ fun(x) {
                            Vector.range(1000000 + x).paged
                            };
                    v = v.paged;

                    let res = ()
                    for elt in v
                        res = res + (elt,)

                    res..apply(fun(tupElt) { tupElt.sum() })

                    'got to the end'
                    }"""
                    )
            )

        response = self.evaluateWithGateway(
            makeComputationDefinitionFromIVCs(
                expr,
                ForaNative.makeSymbol("Call")
                )
            )

        self.assertTrue(response[1].isResult())
        self.assertTrue(response[1].asResult.result.pyval == 'got to the end', response[1].asResult.result.pyval)
开发者ID:vishnur,项目名称:ufora,代码行数:32,代码来源:TestBase.py


示例14: loadAxiomSignaturesFromFile

 def loadAxiomSignaturesFromFile(self, axioms_file):
     """
     Loads axiom signatures from a file `axioms_file`. This file should contain
     axiom signatures on each line, but also can have commented lines (starting with a `#`)
     or commented blocks (lines surrounded by lines of `\"""`), as in python syntax.
     """
     axiom_signatures = []
     line_number = 0
     in_comment = False
     assert os.path.exists(axioms_file), (
                     "unable to open file `%s'\n"
                     %axioms_file
                     )
     with open(axioms_file) as f:
         for line in f:
             line_number += 1
             if re.search('^"""', line):
                 in_comment = (in_comment != True) # in_comment = in_comment XOR True
                 continue
             if not in_comment and not re.search('^#', line) and len(line.strip()) > 0:
                 try:
                     axiom_signatures.append(FORANative.parseStringToJOV(
                                                             line.strip()).getTuple())
                 except Exception as inst:
                     logging.warn("unable to parse to JOV: `%s', %s:%s",
                                                         line.strip(), axioms_file, line_number)
                     raise inst
     return axiom_signatures
开发者ID:Sandy4321,项目名称:ufora,代码行数:28,代码来源:AxiomsConsistency_test.py


示例15: test_TypedFora_Layout_UsingCompiler

    def test_TypedFora_Layout_UsingCompiler(self):
        layoutStyles = [
            TypedFora.RefcountStyle.Pooled(),
            TypedFora.RefcountStyle.AsValueUnowned(),
            TypedFora.RefcountStyle.AsValueOwned()
            ]

        jovs = [
            ForaNative.parseStringToJOV("{String}"),
            #a small union
            ForaNative.parseStringToJOV("{Union([{String}, {Int64}])}"),
            #a much bigger union
            ForaNative.parseStringToJOV("{Union([{String}, {Int64}, {Float64}, nothing, ({Float64})])}"),

            ForaNative.parseStringToJOV("'%s'" % aBigString),
            ForaNative.parseStringToJOV("*")
            ]

        for ls1 in layoutStyles:
            for jov1 in jovs:
                for ls2  in layoutStyles:
                    for jov2 in jovs:
                        if not (ls1.isAsValueOwned() and ls2.isAsValueUnowned()):
                            t1 = TypedFora.Type(jov1, ls1)
                            t2 = TypedFora.Type(jov2, ls2)
                            self.runSimpleEvaluation(t1, t2)
开发者ID:Sandy4321,项目名称:ufora,代码行数:26,代码来源:Layout_test.py


示例16: test_TypedFora_CreateTuple

    def test_TypedFora_CreateTuple(self):
        layoutStyles = [
            TypedFora.RefcountStyle.Pooled(),
            TypedFora.RefcountStyle.AsValueUnowned(),
            TypedFora.RefcountStyle.AsValueOwned()
            ]

        jovs = [
            ForaNative.parseStringToJOV("{String}"),
            ForaNative.parseStringToJOV("'a string'"),
            ForaNative.parseStringToJOV("*")
            ]

        aVal = ForaNative.ImplValContainer("a string")

        allLayouts = []

        for ls1 in layoutStyles:
            for jov1 in jovs:
                allLayouts.append(TypedFora.Type(jov1, ls1))

        for t1 in allLayouts:
            for t2 in allLayouts:
                callable = self.generateTupleCallable([t1, t2], [False, False])

                def validator(result):
                    return result == ForaNative.ImplValContainer((aVal, aVal))

                self.runSimpleEvaluation(callable, [aVal, aVal], validator)
开发者ID:Sandy4321,项目名称:ufora,代码行数:29,代码来源:CreateTupleExpression_test.py


示例17: f

    def test_cfgSplitting_5(self):
        funString = "fun(f) { (f(1) + f(2)) + f(3) }"
        cfg = self.parseStringToFunction(funString).toCFG(1)

        steps = ForaNative.extractApplyStepsFromControlFlowGraph(cfg, None)
        splits = ForaNative.splitControlFlowGraph(cfg, "block_0Let")
        self.assertTrue(splits is not None)
开发者ID:Sandy4321,项目名称:ufora,代码行数:7,代码来源:ControlFlowGraphSplitter_test.py


示例18: size

    def test_futures_tupleCallInContinuation_2(self):
        text = "fun(x) { x = x + x; size((x, *x)) }"

        cfg = self.parseStringToFunction(text).toCFG(1)

        x = 1
        xImplVal = ForaNative.ImplValContainer(x)
        cfgWithFutures = ForaNative.CFGWithFutures.createCfgWithFutures(
            cfg, "block_1Let", (xImplVal,))

        cfgWithFutures.continueSimulation()
        cfgWithFutures.continueSimulation()

        self.assertEqual(cfgWithFutures.indicesOfSubmittableFutures(), [0])

        x = x + x
        cfgWithFutures.slotCompleted(
            0, normalComputationResult(
                ForaNative.ImplValContainer(x)
                )
            )

        self.assertFalse(cfgWithFutures.hasResolvedToSimpleState())

        self.assertEqual(cfgWithFutures.indicesOfSubmittableFutures(), [1])
        self.assertComponentwiseEqual(
            cfgWithFutures.submittableArgs(1).args.values,
            [ForaNative.makeSymbol("size"), ForaNative.makeSymbol("Call"),
             ForaNative.ImplValContainer((x, x))]
            )
开发者ID:Sandy4321,项目名称:ufora,代码行数:30,代码来源:CFGWithFutures_test.py


示例19: test_TypedFora_TupleGetItem

    def test_TypedFora_TupleGetItem(self):
        tupJovs = [
            ForaNative.parseStringToJOV("({String}, {String})"),
            ForaNative.parseStringToJOV("({String}, *)"),
            ForaNative.parseStringToJOV("({String}, 'a string 2')"),
            ForaNative.parseStringToJOV("('a string', 'a string 2')"),
            ForaNative.parseStringToJOV("('a string', *)"),
            ForaNative.parseStringToJOV("('a string', {String})"),
            ForaNative.parseStringToJOV("(*, 'a string 2')"),
            ForaNative.parseStringToJOV("(*, *)"),
            ForaNative.parseStringToJOV("(*, {String})")
            ]

        layoutStyles = [
            TypedFora.RefcountStyle.Pooled(),
            TypedFora.RefcountStyle.AsValueUnowned(),
            TypedFora.RefcountStyle.AsValueOwned()
            ]

        instance = ForaNative.ImplValContainer( ("a string", "a string 2") )

        for tupJov in tupJovs:
            for refcountStyle in layoutStyles:
                for index in range(2):
                    type = TypedFora.Type(tupJov, refcountStyle)

                    callable = self.generateTupleGetitemCallable(type, index)

                    def validator(result):
                        return result == instance[index]

                    self.runSimpleEvaluation(callable, [instance], validator)
开发者ID:Sandy4321,项目名称:ufora,代码行数:32,代码来源:CreateTupleExpression_test.py


示例20: runSimpleEvaluation

    def runSimpleEvaluation(self, inputType, outputType):
        mainRuntime = Runtime.getMainRuntime()
        foraCompiler = mainRuntime.getTypedForaCompiler()

        while foraCompiler.anyCompilingOrPending():
            time.sleep(.01)

        aParticularStringValue = ForaNative.ImplValContainer(aBigString)

        callable = self.generateSimpleCallable(inputType, outputType)

        jumpTarget = foraCompiler.compile(callable)

        import gc
        gc.collect()

        for passIndex in range(PASS_COUNT):
            #type values are memoized, so we can't assume that the value has a refcount
            # of exactly one
            totalStringCount = ForaNative.totalStringCount()
            totalImplvalCount = ForaNative.totalImplvalCount()

            anExecutionContext = ExecutionContext.ExecutionContext(
                dataManager = VectorDataManager.constructVDM(self.callbackScheduler)
                )

            anExecutionContext.evaluateFunctionPointer(jumpTarget, aParticularStringValue)

            self.assertTrue(anExecutionContext.isFinished())

            res = anExecutionContext.getFinishedResult()

            self.assertTrue(not res.isException())
            self.assertEqual(res.asResult.result, aParticularStringValue)

            anExecutionContext.teardown()

            res = None

            #verify final refcounts
            self.assertEqual(
                aParticularStringValue.getStringObjectRefcount(),
                1,
                "refcounts weren't maintained in %s->%s. %s != 1" % (
                    inputType,
                    outputType,
                    aParticularStringValue.getStringObjectRefcount()
                    )
                )
            self.assertEqual(
                (totalStringCount, totalImplvalCount),
                (ForaNative.totalStringCount(), ForaNative.totalImplvalCount()),
                "refcounts weren't maintained in " + str(inputType) + "->" + str(outputType)
                )
开发者ID:Sandy4321,项目名称:ufora,代码行数:54,代码来源:Layout_test.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python test.PerformanceTestReporter类代码示例发布时间:2022-05-27
下一篇:
Python native.CallbackScheduler类代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap