web-dev-qa-db-fra.com

Vraiment confondu avec Jupyter Notebook, Lab, extensions et ipywidgets

Je souhaite créer une application interactive JupyterLab Notebook et je dois créer une série de widgets personnalisés. J'ai donc commencé à me pencher sur la question et plus je regarde, plus je deviens confus. Pour simplifier les choses, je vais poser quelques questions simples:

  1. L’un des moyens les plus courants d’utiliser les widgets sur Jupyter Notebooks consiste à utiliser la bibliothèque ipywidgets. Droite?
  2. Contrairement au portable classique, le portable de JupyterLab ne peut pas restituer JavaScript directement. Par conséquent, les tutoriels sur la création de widgets personnalisés dans les documents ipywidgets sont impossibles à exécuter sur JupyterLab. Droite?
  3. Si on veut utiliser JavaScript dans le cahier de JupyterLab, il devra le faire via une extension. Dans le cas d’ipywidgets, il faudra installer @ jupyter-widgets/jupyterlab-manager. Droite?
  4. Si vous souhaitez écrire un widget personnalisé à l'aide de la bibliothèque ipywidgets, vous pouvez utiliser deux projets GitHub comme point de départ: widget-cookiecutter et widget-ts-cookiecutter. À ma connaissance, le premier est basé sur JavaScript, le second sur TypeScript. En outre, le premier semble être inactif pour un certain type, tandis que le second est plus actif. L’équipe JupyterWidgets prévoit-elle de se concentrer sur TypeScript? Lequel devrais-je suivre?
  5. Les projets de cookiecutter n'ont pas vraiment de documentation. Je suis vraiment confus et j'ai du mal à comprendre leur code. Bien sûr, je peux les copier-coller et commencer à déconner jusqu'à ce que je sache comment tout fonctionne et quels sont les "points d'ancrage" ou les "points d'entrée" dans le code, mais j'apprécierais vraiment que quelqu'un me donne des indications supplémentaires. .
  6. JupyterWidgets est-il un projet "officiel" du projet Jupyter? Étant donné le très petit nombre de membres participant au projet, je me demande s'il est prudent de baser mon travail sur ipywidgets. N'oubliez pas que le projet "DeclarativeWidgets" a été abandonné depuis longtemps.
  7. Existe-t-il d'autres bibliothèques qui implémentent plus de widgets que ceux trouvés dans ipywidgets et s'exécutent également sur JupyterLab?
  8. Je souhaite créer une application Web pour le traitement de données côté serveur. Mon objectif initial était de créer une application/service qui ne demande pas à l'utilisateur de coder et qui exécute tout via l'utilisation de widgets HTML/JavaScript. Cela pourrait être implémenté en utilisant une interface Angular/React et une interface Python/Django/Flask. Cependant, plus tard, j'ai réalisé qu'il pouvait arriver que l'utilisateur veuille effectuer d'autres traitements personnalisés/arbitraires sur le serveur. C'est pourquoi j'ai considéré JupyterLab. Je me demande s’il serait préférable de créer, par exemple, une police/back-end normale Angular/Python, et de l’envelopper dans une extension JupyterLab qui fournira un mécanisme pour accéder aux données à partir de celle-ci. app/service et apportez-le à l'ordinateur pour un traitement ultérieur.

Merci d'avance

9
AstrOne

En général, la question stackoverflow devrait essayer de ne poser qu'une question à la fois. Cela étant dit, je vais essayer de répondre aux questions du mieux que je peux:

  1. ipywidgets est le moyen principal, oui. C'est ce que les gens veulent dire quand ils parlent de widgets pour ordinateurs portables.
  2. Il y a un problème de suivi de JS général dans jupyterlab sur le référentiel de jupyterlab.
  3. @jupyter-widgets/jupyterlab-manager est le widget pour jupyterlab, oui, mais vous aurez toujours besoin du code python dans ipywidgets. Voir http://ipywidgets.readthedocs.io/fr/stable/user_install.html pour plus de détails.
  4. S'il est vrai que l'un est JS et l'autre TS, le TS possède également toutes les fonctionnalités. C'est donc aussi plus complexe. Le JS est plus simple et pourrait donc être mieux comprendre les bits les plus importants.
  5. Je conviens que les deux pourraient faire avec une meilleure documentation! Je voulais faire ça depuis un moment. Le meilleur moyen d'y parvenir est probablement d'ouvrir des questions avec des questions spécifiques sur les référentiels respectifs, et de suggérer que l'explication aille dans le README ou similaire. De cette façon, vous pouvez vous assurer que vos problèmes sont résolus.
  6. Compte tenu de la grande base d'utilisateurs de widgets, je considérerais cela comme sûr. Bien que le facteur de bus ne soit pas très élevé, les gens ont tendance à s’intensifier s’il ya une baisse du nombre d’entretien.
  7. Oui, mais utiliser des widgets pour jupyterlab demande toujours un peu de maintenance, tant pour les développeurs que pour les utilisateurs.
  8. Ce que vous voudrez peut-être étudier est Comms ( http://jupyter-notebook.readthedocs.io/fr/stable/comms.html ), qui est ce que les widgets utilisent sous le capot pour sa synchronisation. C'est un niveau inférieur cependant, vous devrez donc déterminer lequel vous convient le mieux.
5
Vidar

Tout d’abord, rappelez-vous que JupyterLab n’est pas encore stable et que les API internes changent encore un peu. La plus grande partie de votre frustration est d'essayer de trouver des informations sur un projet qui change toutes les semaines (devrait se stabiliser début 2018 pour référence).

Cela a entraîné un minimum d'effort pour la rédaction de documentation et d'exemples pour les utilisateurs, car les documents se tromperaient une semaine plus tard. Votre confusion et votre manque d’activité sont donc normaux pour le moment.

Une fois que le laboratoire s'est stabilisé et que l'équipe IPywidget a commencé à tout porter, vous devriez constater une amélioration.

3
Matt