CreateLoaderFromFile(FileName: String; Metabase: IMetabase): IPythonSerializerLoader;
CreateLoaderFromFile(FileName: String; Metabase: Prognoz.Platform.Interop.Metabase.IMetabase): Prognoz.Platform.Interop.Python.IPythonSerializerLoader;
FileName. Файл, из которого будет осуществляться загрузка.
Metabase. Репозиторий, в котором будет сохранён загруженный объект.
Метод CreateLoaderFromFile создает объект, предназначенный для загрузки Python-модулей.
Для выполнения примера предполагается наличие файла с кодом на языке Python «d:\Work\Python\test.py». В репозитории должна быть создана папка с идентификатором «F_PYTHON».
Добавьте ссылки на системные сборки: Metabase, Python.
Sub UserProc;
Var
MB: IMetabase;
Ps: IPythonSerializer;
Loader: IPythonSerializerLoader;
CrInfo: IMetabaseObjectCreateInfo;
Begin
MB := MetabaseClass.Active;
Ps := New PythonSerializer.Create;
Loader := Ps.CreateLoaderFromFile("d:\Work\Python\test.py", MB);
CrInfo := Loader.CreateInfo;
If MB.ItemById(CrInfo.Id) <> Null Then
CrInfo.Id := MB.GenerateId(CrInfo.Id);
CrInfo.Name := CrInfo.Name + "_Copy";
End If;
CrInfo.Parent := MB.ItemById("F_PYTHON");
Loader.LoadModule;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Python;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Ps: IPythonSerializer = New PythonSerializerClass();
Loader: IPythonSerializerLoader;
CrInfo: IMetabaseObjectCreateInfo;
Begin
MB := Params.Metabase;
Loader := Ps.CreateLoaderFromFile("d:\Work\Python\test.py", MB);
CrInfo := Loader.CreateInfo;
If MB.ItemById[CrInfo.Id] <> Null Then
CrInfo.Id := MB.GenerateId(CrInfo.Id, 0);
CrInfo.Name := CrInfo.Name + "_Copy";
End If;
CrInfo.Parent := MB.ItemById["F_PYTHON"];
Loader.LoadModule();
End Sub;
При выполнении примера из файла в репозиторий будет загружен Python-модуль. Модуль будет сохранён в указанной папке.
См. также: