En particulier, c'est ta ligne source= int(source) qui était dans le if dans le code du 1er post, donc la conversion en entier ne se faisait qu'en cas de "mauvaise" valeur.
Comme tu l'as déplacé en...