[PYTHON] Comment bien définir Jupytext lors de la gestion du code en équipe

C'est pénible d'avoir quelqu'un d'autre éditer ~ / .jupyter / jupyter_notebook_config.py avec les paramètres de conversion automatique de jupytext. J'ai une bonne méthode de réglage donc je vais la partager.

Première conclusion

Placez un fichier avec le contenu suivant à la racine du projet.

jupytext.yml


default_jupytext_formats: "ipynb,py:percent"

Qu'est-ce que jupytext

jupytext est un outil qui convertit les fichiers .ipynb en .py, .R, .jl, .md, .Rmd, etc. En le définissant, il fonctionne avec jupyter lab et le convertit automatiquement lors de l'enregistrement d'un fichier. Il peut également être exécuté à partir de la ligne de commande, il est donc polyvalent.

Il existe un autre outil pour convertir en .ipynb-> .py, nbconvert, mais il est très nécessaire de le convertir automatiquement lors de la sauvegarde.

Conversion .ipynb <-> .py

L'analyse avec plusieurs personnes révélera les mauvais points de .ipynb. Il y a quelques

C'est difficile à partager. Une des solutions à cela est de le convertir au format python. Cela rend le portable léger et facile à lire, ce qui est agréable. Vous pouvez également reproduire le notebook sans aucun problème en convertissant .py-> .ipynb.

environnement

#Environnement Pipenv
python 3.8.5
jupyterlab 2.2.6

Procédure d'utilisation

1. Installation de jupytext

Si vous n'utilisez pas pipenv, remplacez-le par un bon.

$ pipenv install jupytext

2. Construisez le laboratoire Jupyter

Lorsque vous démarrez jupyter lab après l'installation, il vous sera demandé si vous voulez le compiler, alors compilez-le simplement. Si vous voulez construire manuellement, utilisez pipenv run jupyter lab build.

Comment régler

4 types de méthodes de réglage

Il existe quatre méthodes de réglage.

  1. Modifiez les métadonnées .ipynb
  2. jupytext --set-formats ipynb,py notebook.ipynb
  3. Modifiez ~ / .jupyter / jupyter_notebook_config.py
  4. Créez un fichier de configuration jupytext

1 et 2 doivent être définis pour chaque fichier, ce qui est gênant. Le fonctionnement ne peut pas être garanti pour 3 car il est nécessaire d'exploiter des fichiers en dehors du référentiel.

Cette fois, je vais expliquer le n ° 4. Cette méthode est douce car elle est déjà définie lorsque quelqu'un extrait le référentiel.

Créer un fichier de configuration

Créez un fichier de configuration avec l'un des noms suivants. .jupytext jupytext.toml jupytext.yml jupytext.yaml jupytext.json jupytext.py Ou le format avec «.» Ajouté au début de ces

Si vous placez ce fichier à la racine du projet, il sera lu automatiquement. Veuillez consulter le lien de référence pour plus de détails sur l'emplacement.

La conversion automatique sera effective en écrivant comme suit. Cette fois, je l'ai écrit en yaml.

jupytext.yml


default_jupytext_formats: "ipynb,py:percent"

Compte tenu de l'utilisation avec VSCode et PyCharm, le format py: percent est recommandé pour les fichiers python.

En conséquence, je pense que la structure des répertoires ressemblera à ceci.

.
├── Pipfile
├── Pipfile.lock
├── notebook.ipynb  #Cahier créé
├── notebook.py  #Python converti et généré
└── jupytext.yml  #fichier de configuration

Résumé

c'est tout!

référence

Configuration — Jupytext documentation

Recommended Posts

Comment bien définir Jupytext lors de la gestion du code en équipe
Qiita (1) Comment écrire un nom de code
Comment déguiser un fichier ZIP en fichier PNG
Comment coder un drone en utilisant la reconnaissance d'image
Comment se souvenir quand on oublie un mot
Comment configurer un serveur de développement local
[Linux] [module noyau] Comment passer des paramètres comme arguments lors du chargement d'un module noyau chargeable
Comment gérer les arguments lors de l'implémentation d'un script Python en tant qu'outil de ligne de commande
Comment configurer un environnement Python à l'aide de pyenv
Comment afficher DataFrame sous forme de tableau dans Markdown
Comment créer un package Python à l'aide de VS Code
Comment imprimer des caractères sous forme de tableau avec la fonction d'impression de Python
Comment utiliser cuML SVC comme classificateur CV Gridsearch
Soyez prudent lorsque vous attribuez une série en tant que colonne aux pandas.
Comment enregistrer un package dans PyPI (à partir de septembre 2017)
Comment utiliser un fichier autre que .fabricrc comme fichier de configuration
Comment importer NoteBook en tant que module dans Jupyter (IPython)
Comment doi peut-il être utile lorsque vous demandez comment écrire du code?
Définissez VSCode sur PyCharm.
Comment pirater un terminal
Module Ansible Comment mettre la chaîne de caractères JSON passée en paramètre dans le dictionnaire lors de l'écriture
Comment définir un raccourci pour basculer entre pleine largeur et demi-largeur dans IBus
[Python] Comment stocker un fichier csv en tant que données de tableau à une dimension
Comment déployer une application Web sur Alibaba Cloud en tant que pigiste
Comment obtenir un ingénieur de la trentaine
Comment faire une traduction japonais-anglais
Comment mettre un lien symbolique
Comment créer un bot slack
Comment créer un package Conda
Code qui génère un score au hasard
Comment créer un robot - Avancé
Comment créer une fonction récursive
Comment créer un pont virtuel
Comment ajouter sudo lors de l'exécution du débogage
Comment créer un Dockerfile (basique)
[Blender] Comment créer un plug-in Blender
Comment supprimer un conteneur Docker
Comment créer un robot - Basic
Comment exécuter du code TensorFlow 1.0 en 2.0
Comment créer un fichier de configuration
[Python] Qu'est-ce qu'un argument formel? Comment définir la valeur initiale
Comment installer le package python dans un environnement local en tant qu'utilisateur général
Comment configurer un notebook Jupyter à la destination SSH (AWS EC2)
Comment écrire une chaîne de caractères lorsqu'il y a plusieurs lignes en python
[Environnement de développement] Comment créer un ensemble de données proche de la base de données de production