Version wapt 1.5
J'ai essayé d'utiliser le setuphelper ensure_dir dans un package, et j'ai constaté un dysfonctionnement :
En fait, la comande ensure_dir('C:\Programmes\Ape') ne faisait rien. J'ai testé dans une console python avec toutes les combinaisons possibles (en mettant "r" devant 'C:\Pro...', en utilisant Program Files au lieu de Programmes..., rien à faire.
Du coup, j'ai été voir la code de la fonction, et j'ai fait des tests en python directement :
(bien sur le repertoire C\:Program rrr n'existe pas)
Code : Tout sélectionner
>>> ## Test 1 :
>>> d=path.dirname('C:\program rrr')
>>> d
'C:\\'
>>> path.isdir(d)
True
>>> ## Test 2 :
>>> d="C:\Program rrr"
>>> d
'C:\\Program rrr'
>>> path.isdir(d)
False
>>> ##Test 3 :
>>> d="C:\Program Files"
>>> d
'C:\\Program Files'
>>> path.isdir(d)
True
Dans le test 2, on voit que si d est déclaré en tant que string et que le chemin n'existe pas, on obtient bien False.
Dans le test 3, on voit que par contre, si le chemin existe quand d est déclaré comme string, on obtient bien un True.
Il me semble donc que dans ensure_dir(), plutot que d'utiliser
Code : Tout sélectionner
d = os.path.dirname(filename)
Code : Tout sélectionner
d = filename
Code : Tout sélectionner
d = str(filename)
E. Trezel