IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

aide résolution bug


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 293
    Par défaut aide résolution bug
    Bonjour à tous,

    Un appel au pro de Python pour résoudre un bug qui me dépasse :
    Voici le traceback :
    File "C:\Users\chris\Documents\mesScryptPython\fichier\remplacer_texte_stable_2902bis.py", line 508, in style_texte
    next(gen) # A chaque appel de la fonction next() sur ce générateur, le code jusqu’au prochain yield est exéc
    ^^^^^^^^^
    File "C:\Users\chris\Documents\mesScryptPython\fichier\remplacer_texte_stable_2902bis.py", line 406, in edittextElements_pour_style_texte
    elem.parentNode.removeChild(e)
    File "C:\Users\chris\AppData\Local\Programs\Python\Python312\Lib\site-packages\odf\element.py", line 236, in removeChild
    self.ownerDocument.remove_from_caches(oldChild)
    File "C:\Users\chris\AppData\Local\Programs\Python\Python312\Lib\site-packages\odf\opendocument.py", line 204, in remove_from_caches
    assert(isinstance(elt, element.Element) or isinstance(elt, odf.element.Element))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    AssertionError
    Je comprends la ligne : assert(isinstance(elt, element.Element) or isinstance(elt, odf.element.Element)) et pour cela je vérifie mon script de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    rep1=isinstance(elem,element.Element)
    print('instance de element.Element oui/non : ',rep1) # --> False
    rep2=isinstance(elem,opendocument.element.Element)
    print('instance de opendocument.element.Element oui/non : ',rep2) # --> False
    rep3=isinstance(elem,element.Text)
    print('instance de element.Text oui/non : ',rep3) # --> True
    ce qui donne :
    instance de element.Element oui/non : False
    instance de opendocument.element.Element oui/non : False
    instance de element.Text oui/non : True
    Vous l'avez compris, j'utilise pyodf et je veux supprimer une partie de texte. La ligne elem.parentNode.removeChild(elem) me renvoie systématiquement cette erreur. Surtout je ne comprends pas que la fonction assert() lève une erreur puisque instance de element.Element est False

    Je ne poste pas le script dans l'immédiat car il est pour l'instant extrêmement brouillon. Dans la partie qui nous intéresse, j'insère dans text:p des spans (de manière à appliquer un style à certains mots) et après cette insertion, il convient de supprimer l'ancien texte.

    Merci d'avance à qui voudra m'aider.



  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    Citation Envoyé par Chris33 Voir le message
    Surtout je ne comprends pas que la fonction assert() lève une erreur puisque instance de element.Element est False
    Il n'y a rien à comprendre, c'est comme ça que ça marche: lancez l'interpréteur Python et testez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> assert False
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AssertionError
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 293
    Par défaut
    ici assert() lève une exception car elem est une instance de element.Element. Pourtant, c'est selon la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rep3=isinstance(elem,element.Text)
    c'est une instance de element.Text

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    assert n'est pas une fonction, juste une instruction (comme def ou class).
    L'exception est levée si l'expression est fausse... après vous pouvez tourner le truc comme vous voulez mais:
    1. l'algèbre de Boole n'a rien à voir avec Python
    2. s'il y avait un tel bug ça se saurait.

    Donc si
    Citation Envoyé par Chris33 Voir le message
    La ligne elem.parentNode.removeChild(elem) me renvoie systématiquement cette erreur
    c'est que elem n'est ni instance de element.Element ni instance de odf.element.Element. Ce que vous avez pu vérifier avec vos propres tests.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/08/2018, 09h52
  2. J'ai besoin d'aide concernant un bug incompréhensible
    Par Kicker dans le forum GTK+ avec C & C++
    Réponses: 22
    Dernier message: 23/05/2008, 13h27
  3. Bug sur mon menu a bouton, besoin d'aide
    Par Marmoccelle dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 11/03/2008, 09h40
  4. Besoin d'aide avec le module storable bug de version :s
    Par mobscene dans le forum Modules
    Réponses: 3
    Dernier message: 21/10/2006, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo