Python pour graph de ma thèse

Ci dessous un travail de mettre en graphique les liens thématiques dans le travail de thèse.

Liens consultés :

Le but est de construire un graph sur ce principe :

Il faut une fonction qui :

Ouvrir le repository et lister les fichiers

J'accède d'abord à mon repository sur github en local :

Je veux seulement les fichiers qui ont l'extension md :

Le code est trop long, alors je vais le wrapper :

Mais mettons que je souhaite un moment mettre autre chose que du markdown dedans, je veux définir une liste d'extension (pour l'instant au format texte).

Solution alternative mais que je n'aime pas trop parce que donne l'impression de ne rien construire :

Ouvrir les fichiers pour filtrer par tag

Deux solutions :

Je choisis la dernière option parce que cela me semble avoir du sens de rester ici pour le travail de mise en graph, de tout faire partir d'ici mais de toujours travailler avec les documents rééls du repo.

Il apparaît que quand c'est du markdown, la ligne 0 n'est pas évidente, on part donc sur la solution d'encadrer les tags pour qu'ils soient reconnaissables ou les entrer comme métadonnées.

Ajout métadonnées

Plutôt que d'ajouter du texte dans le fichier, éditorialement, je préfère placer des tags en tant que métadonnées car moins de risque de troller le contenu textuel du document.

Solution après errances

Clairement python n'est pas prévu pour aller modifier des fichiers aux métadonnées de base pauvres (à la différence des fichiers image et audio), donc solution :

Lire le yaml et en faire un dictionnaire

Par précaution, parce que le yaml est un langage susceptible et que le risque que j'insère des erreurs dans le document car le gérant à la main est plus important, je lance une fonction qui parse mon document pour m'alerter si des erreurs ont été comises.

Je vérifie maintenant comment est structuré mon dictionnaire.

Test pour vérifier que je peux bien interroger des clefs spécifiques dans mon yaml. Il va me lister tout les liens existants.

En prévision d'un graph selon le principe inversé de mon modèle (pour voir la présence de mes tags dans mes documents), je prépare un dictionnaire qui m'organise les tags par documents.

On se rappelle ce que je veux tester comme graphique :

Je vérifie si le graphique fonctionne avec mon dictionnaire et parvient à me créer les bulles correspondants aux documents qui ont des tags.

Maintenant la fonction qui va me créer les liens entre mes bulles selon les tags en supprimant les doublons.

Maintenant je veux avoir des informations sur la popularité de mes tags au sein de mes ressources.

Pour savoir combien de fichiers sont associés par tag : il faut que je restructure mon dictionnaire.

Test (aborded) GitPython

Test avorté de la solution GitPython pour des raisons sentimentales et techniques.