Scriptforge : callback de fonction en mode "connexion distante"

Bonjour,

Je découvre scriptforge et toutes les facilités que cela amène pour de développement en python (notamment pour tester des bouts de code en direct depuis Ipython).

Pour mes tests, j’utilise une connexion distante, i.e. libreoffice lancé en mode :
soffice --writer --accept='socket,host=localhost,port=2022;urp;'

et connextion python démarrée dans mon script par :

from scriptforge import ScriptForge, CreateScriptService
ScriptForge(hostname='localhost', port=2022)

Existe-t-il une syntaxe URI permettant d’accéder à des fonctions définies dans le script ayant créé le socket, par exemple, peut-on adapter la fonction suivante pour la faire pointer sur un listener sur le canal socket (et pas sur un fichier macro stocké) ?
oMenu.AddItem("Test", script="vnd.sun.star.script:monscript.py$show_popup?lanquage=Python&location=document")

Si quelqu’un à un pointeur pour aller dans la bonne direction, je suis preneur :smiley:

Bonjour,

la syntaxe d’un URI est limitée à ce qui est décrit dans le Scripting Framework URI Specification.

Cependant, le lancement de la connexion par socket et la fonction à activer peuvent se trouver dans le même module python, pour autant que celui-ci se trouve à un endroit exprimable au travers d’un URI, soit, typiquement, dans le dossier $CONFIG/Scripts (comme ~/.config/libreoffice/4/user/Scripts en Linux).

Merci pour cette réponse ultra-rapide : ça confirme ce que je pressentais et donc qu’on est obligés de passer par un fichier (et donc pas de déclaration “en live” de la fonction dans Ipython)

Réponse très claire, je vais me débrouiller avec la déclaration par fichier, merci encore pour la rapidité !

Ce n’est pas tout à fait vrai. Dans « IPython », ou plutôt dans un « Jupyter notebook », vous pouvez très bien développer et tester en direct (à l’exception des fonctions déclenchées par des événements).

Oui, c’est ce que je fais déjà et oui ça marche très bien sauf sur le cas d’usage qui me posais soucis mais j’ai la solution de contournement

NB : Ipython s’utilise en standalone depuis pas loin de 20 ans. Jupyter est arrivé presque 10 ans après mais ca reste très intéressant d’utiliser Ipython en direct (donc pour simplifier, juste le kernel sur lequel Jupyter notebook s’appuie pour Python) pour ce cas d’usage.