import suanpan from suanpan.app import app from suanpan.app.arguments import String @app.input(String(key="inputData1", alias="name", default="Suanpan")) @app.output(String(key="outputData1", alias="result")) def hello_world(context): args = context.args return f"Hello World, {args.name}!" if __name__ == "__main__": suanpan.run(app)
# coding=utf-8 from __future__ import absolute_import, print_function from suanpan.stream import Handler as h from suanpan.stream import Stream from suanpan.stream.arguments import String import suanpan class DemoIn1Out1(Stream): @h.input(String(key="inputData1", required=True)) @h.output(String(key="outputData1", required=True)) def call(self, context): args = context.args return args.inputData1 if __name__ == "__main__": suanpan.run(DemoIn1Out1)
# coding=utf-8 from __future__ import absolute_import, print_function import suanpan from suanpan.spark import SparkComponent as sc from suanpan.spark.arguments import ListOfString, Table @sc.input( Table(key="inputData", table="inputTable", partition="inputPartition")) @sc.column(ListOfString(key="columns")) @sc.output( Table(key="outputData", table="outputTable", partition="outputPartition")) def Demo(context): args = context.args df = args.inputData if args.columns: df = df.select(args.columns) return df if __name__ == "__main__": suanpan.run(Demo)
# coding=utf-8 from __future__ import absolute_import, print_function import suanpan from suanpan.stream import Handler as h from suanpan.stream import Stream from suanpan.stream.arguments import String class DemoIn1Out2(Stream): @h.input(String(key="inputData1", required=True)) @h.output(String(key="outputData1", required=True)) @h.output(String(key="outputData2", required=True)) def call(self, context): args = context.args return args.inputData1, args.inputData1 if __name__ == "__main__": suanpan.run(DemoIn1Out2)
# coding=utf-8 from __future__ import absolute_import, print_function import suanpan from suanpan.stream import Handler as h from suanpan.stream import Stream from suanpan.stream.arguments import String class DemoIn1Out2Send2nd(Stream): @h.input(String(key="inputData1", required=True)) @h.output(String(key="outputData1", required=True)) @h.output(String(key="outputData2", required=True)) def call(self, context): args = context.args self.send({"outputData2": args.inputData1}) if __name__ == "__main__": suanpan.run(DemoIn1Out2Send2nd)
Float(key="param1", alias="duration", default=10), # 设置加载模型duration参数 ] def afterInit(self): # 初始化模型 self.model = ModelDemo() self.model.setLoader(storagePath=self.args.model1, version="latest") self.model.load(self.model.path) def afterCall(self): # 在每一次call()之后,检查是否有新的模型版本, 有的话会自动下载相应版本模型文件夹 self.model.reload(self.args.duration) @h.input(Json(key="inputData1", required=True)) @h.output(Json(key="outputData1")) def call(self, context): args = context.args inputData = args.inputData1 print("input data: {}".format(inputData)) features = None # 获取数据 outputData = self.model.predict(features) # 预测 print("output data: {}".format(outputData)) return outputData # 返回结果 if __name__ == "__main__": suanpan.run(ModelStreamDemo)
print(args.inputData1) imgs = get_all_files(args.inputData1) points = args.points for img in imgs: imgpath = img.split("/") preMain( imgpath=img, saved_path=os.path.join(args.outputData1, *imgpath[8:-1]), model_path=os.path.join( os.path.dirname(os.path.abspath(sys.argv[0])), "utils", "model"), height_real=args.heightReal, width_real=args.widthReal, ) reCalcHoleGrid( png_path=img, json_path=os.path.join(args.outputData1, *imgpath[8:-1], "response.json"), rectangle=[], points=points, ) return args.outputData1 if __name__ == "__main__": suanpan.run(GridPre)
# coding=utf-8 from __future__ import absolute_import, print_function import suanpan from suanpan.stream import Handler as h from suanpan.stream import Stream from suanpan.stream.arguments import String class DemoIn1OutError(Stream): @h.input(String(key="inputData1", required=True)) @h.output(String(key="outputData1", required=True)) def call(self, context): # pylint: disable=unused-argument self.sendError("Demo failure message for test") if __name__ == "__main__": suanpan.run(DemoIn1OutError)
# coding=utf-8 from __future__ import absolute_import, print_function import suanpan from suanpan.stream import Handler as h from suanpan.stream import Stream from suanpan.stream.arguments import String class DemoIn1Out2Send1st(Stream): @h.input(String(key="inputData1", required=True)) @h.output(String(key="outputData1", required=True)) @h.output(String(key="outputData2", required=True)) def call(self, context): args = context.args self.send({"outputData1": args.inputData1}) if __name__ == "__main__": suanpan.run(DemoIn1Out2Send1st)
# coding=utf-8 from __future__ import absolute_import, print_function import suanpan from suanpan.stream import Handler as h from suanpan.stream import Stream from suanpan.stream.arguments import String class DemoIn2Out1(Stream): @h.input(String(key="inputData1", required=True)) @h.input(String(key="inputData2", required=True)) @h.output(String(key="outputData1", required=True)) def call(self, context): args = context.args return args.inputData1 + args.inputData2 if __name__ == "__main__": suanpan.run(DemoIn2Out1)