~ubuntu-branches/ubuntu/trusty/pysatellites/trusty

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- coding: utf-8 -*-

def traduit(chaine):
    """cette méthode vérifie la validité de la chaîne en fonction de sa provenance et, au besoin, transforme des expressions possibles (10^11) en grandeur acceptée par python"""
    # on force le type chaîne pour pouvoir faire des évaluations.
    chaine=str(chaine).replace(" ","") # et retrait de tous les espaces

    #vérification de la présence d'un float correct, sinon tente des modifs.
    try : 
        chaine=float(eval(chaine))
    except : 
        chaine=chaine.replace("10^","e")
        #remplace la chaine 10^ par e
    else:
        return chaine

    try : 
        chaine=float(eval(chaine))
    except : 
        #remplace les "x" pour la multiplication
        chaine=chaine.replace("x","*")
        chaine=chaine.replace("X","*")
    else:
        return chaine

    try : 
        chaine=float(eval(chaine))
    except : 
        #remplace les "*" devant un "e"
        chaine=chaine.replace("*e","e")
    else:
        return chaine

    try : 
        chaine=float(eval(chaine))
    except : 
        #self.debug(0,u"Erreur : %s, même après les tranformations, n'est pas une expression acceptable" %chaine)
        return 1.0
    else:
        return chaine
    return 1.0