-
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.
./x uv run --with jupyterlab jupyter lab
Bonus: vyrob adresár notebooks
a spusti Jupyter s --preferred-dir=notebooks
.
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='cookie',
ais_cookie='hodnota JSESSIONID cookie z ais2.uniba.sk',
rest_cookie='hodnota JSESSIONID cookie z votr-api.uniba.sk'))
rest_cookie
je nepovinné.
Stlačíme "Kernel" → "Restart Kernel and Run All Cells".
Hodí sa pridať si na to klávesovú skratku. Podľa https://stackoverflow.com/a/65304663:
- Otvor "Settings" → "Settings Editor".
- Vpravo hore stlač "JSON Settings Editor" alebo "Advanced Settings Editor".
- Otvor "Keyboard Shortcuts".
- Napíš do "User Preferences":
{ "shortcuts": [ { "args": {}, "command": "runmenu:restart-and-run-all", "keys": [ "9", "9" ], "selector": "[data-jp-code-runner]" } ] }
- Ulož nastavenia s Ctrl+S.
- Odteraz keď v notebooku dvakrát za sebou stlačíš "9", notebook sa vykoná odznovu.
Cez uv
už to funguje samo od seba. Kedysi bolo treba na začiatok notebooku napísať:
import sys
sys.path[0] = '..'