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

Python Discussion :

problème : AssertionError comment résoudre ?


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut problème : AssertionError comment résoudre ?
    Bonjour, j'ai besoin de votre aide pour corriger une erreur qui m'intrigue depuis quelques jours déjà.

    Cette erreur se produit a cette instant du script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nbstep = it.next()
            for k, m in it:
               pass
    it est un generateur objet.

    Et voici le message affiché par l'erreur :
    Traceback (most recent call last):
    --File "D:\Projet\mainProc.py", line 26, in (module)
    ----dataSet.analyseImage()
    --File "D:\Projet\DataSet;py", line 246, in analyseImage
    ----["temp/sfsTemp.sfs"], 0, True, dataSmallImage
    --File "D:\Projet\utilsFunction.py", line 85, in classifSurfacesetAdditionnal
    ----nbstep = it.next()
    --File "D:\Projet\castext066\surfcar\surfaceset.py", line 698, in classify_additionnal
    ----extractors_and_types = [self._get_descriptors_extractor(name) for name in descriptor_names]
    --File "D:\Projet\castext066\surfcar\surfaceset.py", line 1037, in _get_descriptors_extractor
    ----extractor = self.get_extractor_by_name(extractor_name)
    --File "D:\Projet\castext066\surfcar\surfaceset.py", line 967, in get_extractor_by_name
    ----setattr(extractor,attrname,row[attrname])
    --File "D:\Projet\castext066\surfcar\extractors.py", line 144, in __setattr__
    ----Extractor.__setattr__(self,attrname,value)
    --File "D:\Projet\castext06`\surfcar\schema.py", line 114, in setter
    ----constraint.check(value)
    --File "D:\Projet\castext066\surfcar\schema.py", line 81, in check
    ----assert value in self.choicefunc()
    AssertionError

    Voici les dernieres fonctions :
    schema.py / ligne 113 à 118
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def setter(self, value):
            if constraint is not None:
                value = constraint.convert(value)
                constraint.check(value)         
            setattr(self, '_%s' % attrname, value)
        return setter
    schema.py / ligne 81 et 82
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def check(self, value):
            assert value in self.choicefunc()
    Si quelqu'un a une idée, une piste pour me dire où chercher ou besoin de renseignements, n'hésitez pas.

    merci d'avance.

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Ce que je comprends:


    l’instruction setattr(extractor,attrname,row[attrname]) active, je ne sais pourquoi, la méthode Python spéciale __setattr__() par l’instruction Extractor.__setattr__(self,attrname,value)

    __setattr__() déclenche elle-même le recours à ta fonction setter()
    Apparemment setter() est une méthode dans une classe.

    Dans cette méthode, la ligne constraint.check(value) lève le message AssertionError
    parce que value n’est pas dans self.choicefunc()

    Je suppose que tu as mis ce checking pour être informé d’une telle situation.
    Cela devrait donc t’être utile pour debugger.



    Par contre, dans la mesure où nous ne pouvons pas savoir ce que sont choicefunc() , constraint et constraint.convert() par manque d’informations, nous ne pouvons pas aller plus loin.



    Sauf à te signaler quelques points:

    - si setter est le nom utilisé pour une fonction, je ne crois pas qu’il soit correct de tenter de faire renvoyer par la fonction quelque chose désigné par son propre nom (return setter). Mais c’est peut être quelque chose que je ne connais pas (?).

    - d’après des tests que j’ai réalisés en leur temps, le formattage de chaîne est toujours (toujours ?) plus long qu’un procédé plus simple.
    En l’occurence, '_%s' % attrname est d’après moi plus longue à être exécutée que ’_’+attrname.










    Dis nous ce qu’est constraint: une instance de classe ? un module ?

Discussions similaires

  1. [ListView] Comment résoudre un problème de Binding/Multibinding rafraichissement ?
    Par Lookoum dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 26/09/2008, 09h27
  2. Réponses: 5
    Dernier message: 19/06/2008, 10h23
  3. Comment résoudre ce probléme : Exception d'E/S: Connection refused ?
    Par adil_vpb dans le forum Connexions aux bases de données
    Réponses: 17
    Dernier message: 19/11/2007, 16h19
  4. Réponses: 12
    Dernier message: 27/08/2007, 12h33
  5. Réponses: 3
    Dernier message: 19/05/2006, 15h54

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