patacrep/patanet

Cannot import parsesong from patacrep.latex

oliverpool opened this issue · 6 comments

Sûrement à cause d'une mise à jour du côté de patacrep, le script d'import des chants ./manage.py importsongs ne fonctionne plus.

from patacrep.latex import parsesong
ImportError: cannot import name 'parsesong'

Dans le fichier generator/management/songs.py.

J'ai essayé de regarder un peu dans le dossier latex de patacrep, mais je n'ai pas trouvé de solution propre.

Faut-il utiliser l'objet Song ?
(ping @Luthaf ou @paternal)

J'ai fait un fix (assez sale probablement):

diff --git a/generator/management/songs.py b/generator/management/songs.py
index 40bd666..24037d7 100644
--- a/generator/management/songs.py
+++ b/generator/management/songs.py
@@ -20,7 +20,7 @@ from django.conf.global_settings import LANGUAGES
 from django.utils.text import slugify

 from generator.models import Song, Artist
-from patacrep.latex import parsesong
+from patacrep.latex import parse_song

 import pygit2 as git
 import pprint
@@ -30,10 +30,13 @@ LOGGER = logging.getLogger(__name__)

 def import_song(filepath, song_directory):
     '''Import a song in the database'''
-    data = parsesong(filepath, "UTF8")
+    with open(filepath) as song:
+        data = parse_song(song.read(), filepath)
     LOGGER.info("Processing " +
                 pprint.pformat(data['@titles'][0]))

Ça ne me semble pas trop mal. Tu es bien sur la branche Python3 ?

Oui

Si ça marche, tant mieux. Par contre, en faisant cela, vous ne pourrez utiliser que des chansons au format LaTeX. Or il me semble que patanet gèrera aussi, voire exclusivement, des chansons au format chordpro.

Il vous faut plutôt utiliser l'objet Song, qui fera, entre autre :

  • gestion du cache ;
  • rendu de la chanson en HTML, une fois les templates appropriés écrits.

Le travail en cours dans patacrep/patacrep#79 change plusieurs choses ; je vous conseille de travailler avec cette branche ou d'attendre son intégration dans master.

Et du coup, puisque vous ne manipulez plus le même objet, il faudra changer la suite du code de patanet.

Pour l'instant Patanet ne gère pas vraiment les chansons (que ce soit en LaTeX ou ChrodPro).

Du coup mon patch est juste une réparation rapide et on va attendre l'intégration de l'issue que tu cites pour implémenter le tout dans patanet!

"Pushé": 9802593