C.2 Модули
В модулях GRT содержатся библиотеки, включающие список функций, которые экспортируются для использования кодом в других модулях, скриптах или самом Workbench. Модули могут быть написаны на C++ или Python, но типы данных, используемые для аргументов и возвращаемого значения, должны быть типами GRT.
Модули GRT похожи на модули Python, но импортируются из встроенного модуля grt, а не непосредственно из внешнего файла. Список модулей, загруженных в модуль grt, получается из grt.modules. Модули можно импортировать в Python, используя инструкции, такие как from grt.modules import
WbModel.
Для экспорта функций в виде модуля из кода Python выполните следующие шаги:
-
Исходный файл должен находиться в папке пользовательских модулей. Этот путь отображается в оболочке скриптов Workbench с меткой Поиск пользовательских плагинов в. Также файл можно установить, используя пункт меню , .
Таблица C.2 Положение файла пользовательского модуля по умолчанию
Таблица C.2 Положение файла пользовательского модуля по умолчанию Операционная система Путь к файлу Windows %AppData%\MySQL\Workbench\modules macOS ~username/Library/Application Support/MySQL/Workbench/modules Linux ~username/.mysql/workbench/modules
Имя исходного файла должно иметь расширение
_grt.py; например,my_module_grt.py.-
Необходимо определить метаданные модуля. Это можно сделать, используя функцию
DefineModuleиз модуля wb:from wb import * ModuleInfo = DefineModule(name='MyModule', author='Your Name', version='1.0')
-
Функции, подлежащие экспорту, требуют объявления их сигнатуры. Это достигается с помощью декоратора export в ранее созданном объекте ModuleInfo:
@ModuleInfo.export(grt.INT, grt.STRING) def checkString(s): ...
В инструкции
exportтип возвращаемого значения указывается первым, а затем типы входных параметров, указанные как имена типов GRT. Можно использовать следующие имена типов:grt.INT: Целочисленное значение. Также используется для логических значений.grt.DOUBLE: Значение с плавающей запятой.grt.STRING: Данные строки UTF-8 или ASCII.grt.DICT: Элемент словаря ключ-значение. Ключи должны быть строками.grt.LIST: Список других значений. Можно указать тип содержимого как кортеж в форме(grt.LIST, <type-or-class>). Например, (grt.LIST, grt.STRING) для списка строк. Для списка объектов таблицы будет указано следующее:(grt.LIST, grt.classes.db_table).grt.OBJECT: Экземпляр объекта GRT или объект класса GRT изgrt.classes.
ПримечаниеЭти типы определены в модуле
grt, который необходимо импортировать, прежде чем они станут доступны для использования.
Следующий фрагмент кода иллюстрирует объявление модуля, экспортирующего одну функцию:
from wb import *
import grt
ModuleInfo = DefineModule(name='MyModule', author="your name", version='1.0')
@ModuleInfo.export(grt.DOUBLE, grt.STRING, (grt.LIST, grt.DOUBLE))
def printListSum(message, doubleList):
sum = 0
for d in doubleList:
sum = sum + d
print message, sum
return sum
© 2025 Oracle
Licensed under the GPLv2 License.