Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/09/2008, à 11:02

neo49

[Résolu] Modification script python

Salut , je cherche à modifier quelques petits trucs dans un desklet seulement je bloque :

# get fan speed information and display in a meter       
class FanSpeedMeter (ACPIMeter):
   
    def create(self, location, basedir, config_dictionary):

        config_dictionary["base text"] = ("Ventilateur",)
        config_dictionary["value text length"] = (6,)
       
        self.max_fan = config_dictionary["max_fan"]
       
        ACPIMeter.create(self, location, basedir, config_dictionary)
       
    def getMeterValues(self):
        read_value = float(file(self.file).read().strip())
        text_value = '%.0f' % (read_value)
        krell_value = float(text_value)/self.max_fan

        return [krell_value,], [text_value,]

# get CPU temperature information and display in a meter       
class TemperatureMeter (ACPIMeter):
   
    def create(self, location, basedir, config_dictionary):

        config_dictionary["base text"] = ("Temperature",)
        config_dictionary["value text length"] = (6,)
       
        self.max_temp = config_dictionary["max_temp"]
       
        ACPIMeter.create(self, location, basedir, config_dictionary)
       
    def getMeterValues(self):
        read_value = float(file(self.file).read().strip())
        text_value = '%.0f' % (read_value/1000)
        krell_value = float(text_value)/self.max_temp

        return [krell_value,], [text_value,]
       
class EventHandler (adesklets.Events_handler):

Je souhaiterais rajouter "tr/min" pour le fan speed et "°C" pour la temprérature, je sais que ça se trouve dans "text value" mais apres que faut-il rajouter et où... . Merci d'avance

Dernière modification par neo49 (Le 08/09/2008, à 12:37)

Hors ligne

#2 Le 08/09/2008, à 12:08

tshirtman

Re : [Résolu] Modification script python

tu n'as pas donné le code en entier, mais je suppose qu'on peut faire ça.

return [krell_value,], [text_value+"tr/min",]
return [krell_value,], [text_value+"°C",]

par contre il risque de t'embeter pour le "°"

dans ce cas il faut que tu ajoute une ligne
# coding: utf-8
en DEUXIEME ligne du fichier
(la première est "#!/usr/bin/env python" en général)

smile

Hors ligne

#3 Le 08/09/2008, à 12:37

neo49

Re : [Résolu] Modification script python

Merci beaucoup c'est bon . wink

Hors ligne

#4 Le 08/09/2008, à 12:38

aleph

Re : [Résolu] Modification script python

>>> 
>>> read_value = 1234.0
>>> text_value = '%.0f %s' % (read_value, 'tr/min')
>>> print text_value
1234 tr/min
>>> #ou bien
>>> text_value = '%.0f tr/min' % (read_value)
>>> print text_value
1234 tr/min
>>> #ou bien
>>> text_value = '%.0f%s' % (read_value, ' tr/min')
>>> print text_value
1234 tr/min
>>> #mieux (à mon goût)
>>> unit = 'tr/min'
>>> read_value = 1234.0
>>> text_value = '%.0f %s' % (read_value, unit)
>>> print text_value
1234 tr/min
>>> #str + str -> pas bon
>>>

#5 Le 08/09/2008, à 13:37

tshirtman

Re : [Résolu] Modification script python

aleph: j'avais pensé le faire là aussi au début, mais le fait que la ligne suivante s'appuis sur le résultat et utilise un float() aurais fait crasher...

Hors ligne

#6 Le 08/09/2008, à 15:28

aleph

Re : [Résolu] Modification script python

tshirtman a écrit :

aleph: j'avais pensé le faire là aussi au début, mais le fait que la ligne suivante s'appuis sur le résultat et utilise un float() aurais fait crasher...

Excellente remarque, je ne l'avais pas vu ! Donc,

def getMeterValues(self):

    # float
    read_value = float( file(self.file).read().strip() )
    
    # format, str
    text_value = '%.0f tr/min' % (read_value)
    
    # utilisation de read_value (déjà un float) au lieu de text_value!
    # il semblerait que le but de la manoeuvre était d'arrondir la valeur!
    # float
    krell_value = round(read_value) / self.max_fan
    
    # renvoi des valeurs, virgules inutiles
    # un 2-tuple de deux listes à un élement chacune !?
    return [krell_value], [text_value]

ou

def getMeterValues(self):
    read_value = float( file(self.file).read().strip() )
    return ([round(read_value) / self.max_fan], ['%.0f tr/min' % (read_value)])

#7 Le 08/09/2008, à 16:12

tshirtman

Re : [Résolu] Modification script python

En même temps ma solution est plus simple a comprendre et à modifier plus tard ^^.

Hors ligne

#8 Le 08/09/2008, à 19:37

aleph

Re : [Résolu] Modification script python

tshirtman a écrit :

En même temps ma solution est plus simple a comprendre et à modifier plus tard ^^.

Tout à fait.

Le code de base proposé étant couci-couça, mon but était de proposer, à qui veux bien être intéressé, une méthode un peu plus propre.