Le 05/03/2015 10:43, Simon Fonteneau a écrit :
Bonjour a tous

Je galère un peu dans la création de paquet wapt.

Je souhaite faire quelque chose de ce type pour vérifier que le logiciel à bien été installé avec la bonne version:


----------------------------------------------------

#Je déclare ma version
version = '0.91' 

# Recherche tout les logiciels qui s'appelle inkscape
check_installed = installed_softwares('Inkscape')

# si cette liste globale n est pas vide
if check_installed:

# Je boucle pour chaque logiciel trouvé
             for uninstall in check_installed:

# Si la version du logiciel n'est pas la même que ma version installé
                if Version(uninstall['version']) != Version(control['version']) :

#J'indique que le check de sortie ne fonctionne pas
                   print('Le check de sortie ne fonctionne pas')

#Et je génère une erreur pour que le paquet soit en erreur dans wapt
                   mise en erreur


Seulement    mon    if Version(uninstall['version']) != Version(control['version']) :     ne fonctionne pas je soit m'être mal débrouillé.
La clé version du fichier control inclut la version du packaging après un tiret.
Dans la base de registre, il ne doit y avoir que la version du logiciel lui même.
Donc il faut enlever la partie après le tiret pour pouvoir comparer (la fonction "split" des chaines de caractères est très pratique pour cela)

[Dbg]>>> control.version
u'2.2.0-1'
[Dbg]>>> control.version.split('-',1)[0]
u'2.2.0'
[Dbg]>>> Version(control.version.split('-',1)[0])
2.2.0
[Dbg]>>> installed_softwares('vlc')[0]['version']
u'2.1.3'
[Dbg]>>> Version(installed_softwares('vlc')[0]['version'])
2.1.3

La classe Version permet de comparer des versions numériquement et pas alphabétiquement.
[Dbg]>>> '1.10.0' > '1.9.0'
False

[Dbg]>>> Version('1.10.0') > Version('1.9.0')
True

[Dbg]>>> Version('1.10.0') == Version('1.10')
True

La version de packaging n'est pas prise en charge correctement, elle fait partie du troisième membre de l'objet Version

>>> Version('1.10.0-3').members
['1', '10', '0-3']


Hubert


----------------------------------------------------


Je ne parviens également pas à mettre mon paquet wapt en erreur 


Quelqu’un peut m'aider ?

Simon