-
Notifications
You must be signed in to change notification settings - Fork 11
Praca s ipythonom (sk)
Pri vývoji Votru sa často hodí experimentovať. Keď vývojár pridáva podporu pre novú činnosť alebo aplikáciu, väčšinou to spraví ručne v AISe a popri tom prekladá všetko čo robí a všetko čo sa stane do Votr kódu. Na toto sú veľmi užitočné Jupyter notebooky. (Terminológia: Jupyter notebooky podporujú veľa jazykov, Pythonová verzia sa volá IPython.)
Notebooky sú kríženci medzi normálnym príkazovým riadkom a skriptami. Príkazy sa dajú písať po jednom podľa aktuálnej situácie, ale keď treba, celý program sa dá spustiť odznova.
pip install jupyter
jupyter notebook
from nbenv import *
client = create_client(ais, get_login_params())
To spustíme (Shift+Enter) a dostaneme nový client
. Čo sa s ním dá robiť:
# Volať fladgejt metódy
client.get_som_student()
# Zistiť zoznam aplikácii
aisikl.portal.get_apps(client.context)
# Otvárať aplikácie, ktoré už poznáme
app = client._open_administracia_studia()
# Otvárať nové aplikácie
url = '/ais/servlets/WebUIServlet?...'
app, ops = Application.open(client.context, url)
app.awaited_open_main_dialog(ops)
# Robiť veci v otvorených aplikáciach
app.d.components
app.d.nejakyTextField.write('obsah')
with app.collect_operations() as ops: app.d.nejakyButton.click()
app.awaited_open_dialog(ops)
Funkcia get_login_params()
si prvýkrát vypýta meno a heslo a uloží ho v /tmp/votrlogin-$USER
. Vďaka tomu nebude heslo nikdy viditeľné na obrazovke alebo uložené v ipynb súbore.
client = create_client(ais_beta, get_login_params())
client = create_client(ais, dict(
type='cosigncookie',
ais_cookie='hodnota cosign-filter-ais2.uniba.sk',
rest_cookie='hodnota cosign-filter-votr-api.uniba.sk'))
rest_cookie
je nepovinné.
Stlačíme "Kernel" -> "Restart & Run All".
Hodí sa pridať si na to klávesovú skratku. Stlačíme "Help" -> "Edit Keyboard Shortcuts", nájdeme "restart kernel and run all cells", a pridáme napríklad 9,9
(t.j. dvakrát za sebou stlačiť "9").
Najjednoduchšie je vyrábať notebooky v koreni Votru, ale ak ich chceme mať uložené v podadresári (povedzme votr/notebooks
), treba na začiatok pridať:
import sys
sys.path[0] = '..'