Za pomocą skrypty napisanych w języku Gython można w pełni kontrolować obiekty Metadata zawierające informacje i ustawienia dotyczące procesów ekstrakcji danych. W szczególności, można wykonywać następujące operacje:
Konstrukcja obiektów ekstrakcji danych
Odczyt i modyfikacja własności obiektów ekstrakcji danych
Zapisywanie i odczytywanie obiektów ekstrakcji danych z repozytoriów metadanych.
Wykonywanie i synchronizacja zadań ekstrakcji danych.
Każdy rodzaj obiektu ekstrakcji danych można utworzyć w następujący sposób:
obj = ClassName(constructor_args)
gdzie ClassName to nazwa klasy, do której ma należeć tworzony obiekt, constructor_args to oddzielone przecinkami argumenty wymagane do utworzenia obiektu. Na przykład, obiekt klasy ClassificationSettings można utworzyć w następujący sposób:
fs = ClassificationFunctionSettings()
Standardowy sposobem dostępu do własności obiektu jest poprzedzenie nazwy własności kropką, np.:
fs.algorithmSettings
Większość obiektów MetaModelu można utworzyć za pomocą konstruktorów z zerową liczbą parametrów, jednak pewne rodzaje obiektów mogą wymagać podania pewnej liczby argumentów. Specyfikacja pozwala także na tworzenie niektórych obiektów na kilka sposobów z różnymi zestawami argumentów. Na przykład obiekt ClassificationTestTask można utworzyć na dwa sposoby, zgodnie z dwoma wariantami składni:
create() create(testDataName, modelName, testResultName)
Przykład 2.18. Praca z obiektami:
# the first method task = ClassificationTestTask() task.testDataName = 'test_data_pd' task.modelName = 'my_model' task.testResultName = 'results' # the second method (the end result is the same): task = ClassificationTestTask( 'test_data_pd', 'my_model', 'results' ) print "Task created"
Wynik:
Task created
Instrukcja save zapisuje lokalny obiekt do repozytorium metadanych. Zapisywany obiekt musi mieć unikalną nazwę (nadaną przez użytkownika) i identyfikator (generowany automatycznie). Jeżeli obiekt o podanej nazwie już istnieje, to może on zostać nadpisany, lub zostanie zgłoszony błąd, decyduje o tym parametr replace. Zapisywany obiekt musi być instancją klasy PersistentObject.
Składnia:
save(name, object[, replace])
name - nazwa obiektu lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
object - obiekt, który ma być zapisany
replace - czy nadpisać istniejący obiekt o takiej samej nazwie (True, wartość domyślna).
Instrukcja load wczytuje obiekt z repozytorium metadanych. Wszelkie zmiany dotyczące wczytanego obiektu mają charakter lokalny, dopóki obiekt nie zostanie ponownie zapisany w repozytorium za pomocą instrukcji save().
Składnia:
load(name)
name - nazwa obiektu lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
Instrukcja rename zmienia nazwę obiektu zapisanego w repozytorium.
Składnia:
rename(old_name, new_name)
old_name - aktualna nazwa obiektu lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
new_name - nowa nazwa obiektu lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
Jeżeli podany jest mralias, to powinien być taki sam dla obu nazw. Jeżeli obiekt o nowej nazwie już istnieje, zgłoszony zostanie błąd.
Instrukcja execute wykonuje zadanie zapisane w repozytorium metadanych. Instrukcja ta może działać w trybie blokującym (dalsze instrukcje w skrypcie nie zostaną wykonane dopóki bieżące zadanie nie zakończy wykonywania) lub nieblokującym. Można podać też kilka zadań i określić, czy mają być wykonywane synchronicznie, czy asynchronicznie. Wyjątki zgłoszone w trakcie wykonywania zadania zostaną wyświetlone w oknie log. W trybie blokującym wyniki będą natychmiast widoczne w oknie output a wyjątki skutkują przerwaniem wykonywania skryptu.
Składnia:
execute(task, wait = 0 | 1)
gdzie:
task =
name | { sync | async : [ task1, task2, ... ] }
name - nazwa zadania w repozytorium lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
wait - wartość 1 (domyślna) oznacza tryb blokujący, wartość 0 oznacza, że wysłane zostanie tylko żądanie wykonanie zadania.
sync - zadania zostaną wykonan synchronicznie
async - zadania zostaną wykonane asynchronicznie
Instrukcja delete usuwa obiekt z repozytorium, jednak wszelkie referencje do tego obiektu pozostają.
Składnia:
delete(name)
name - nazwa obiektu do usunięcia lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
Funkcja exists sprawdza, czy obiekt o danej nazwie instnieje w repozytorium i zwraca wartość niezerową jeśli tak i 0 jeśli nie.
Składnia:
exists(name)
name - nazwa obiektu lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
Instrukcja terminate przerywa wykonywanie zadania na serwerze. Instrukcja ta nie czeka, aż zadanie zostanie faktycznie przerwane i nie gwarantuje, że tak się stanie. Jeżeli zadanie zostało przerwane wcześniej lub nie było w ogóle wykonywane, nie będzie zgłoszony wyjątek.
Składnia:
terminate(name)
name - nazwa zadania, które ma zostać przerwane lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
Instrukcja saveEnv zapisuje wszystkie lub wskazane zmienne utworzone za pomocą skryptu do repozytorium metadanych. Zapisywane mogą zostać zmienne następujących typów: float, int, complex, string, dict, list, tuple.
Składnia:
saveEnv(name[, [s1, s2, ...]], isGlobal, replace)
name - nazwa obiektu, w którym zostanie zapisane środowisko
[s1, s2, ...] - lista obiektów, które mają być zapisane. Jeżeli ten parametr zostanie pominięty zapisane zostaną wszystkie obiekty dopuszczalnych typów.
isGlobal - jeśli True zapisane zostaną także zmienne globalne. W przeciwnym przypadku zapisane zostaną tylko zmienne lokalne.
replace - jeśli True (wartość domyślna), istniejący obiekt o takiej samej nazwie zostanie nadpisany.
Instrukcja loadEnv wczytuje zmienne z obiektu w repozytorium przechowującego środowisko skryptowe do bieżącego środowiska skryptowego.
Składnia:
loadEnv(name)
name - nazwa obiektu lub nazwa repozytorium i nazwa obiektu oddzielone kropką (mralias.objectname).
Instrukcja mrAlias ustanawia nowy alias do repozytorium metadanych. Alias jest łączem pomiędzy symboliczną nazwą i repozytorium metadanych. Alias jest wykorzystywany przez wszystkie funkcje operujące na obiektach z repozytorium. Domyślny alias jest tworzony automatycznie przez platformę. Aby jawnie utworzyć domyślny alias należy użyć instrukcji mrRegistry.
Składnia:
mrAlias(mrAliasName, server, repository, user, password)
mrAliasName - symboliczna nazwa repozytorium metadanych.
server - adres i port głównego serwera
repository - adres i port repozytorium metadanych
user - nazwa użytkownika
password - hasło użytkownika
Instrukcja log wysyła do okna log tekst z poziomem INFO.
Składnia:
log(text)
text - tekst do wyświetlenia