Gnome Mcore Applet

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Schattenbringer1
User
Beiträge: 9
Registriert: Mittwoch 4. Juni 2008, 16:34

Gnome Mcore Applet

Beitragvon Schattenbringer1 » Donnerstag 5. Juni 2008, 16:06

Ich habe immer nur panel-applets für gnome gefunden, die nur die auslastung für den Durchschnitt aller CPU's anzeigt. Aber ich wollte für jeden CPU(core) eine eigene Anzeigen.

Da hab ich das Ding halt geschrieben :)
Mit hilfe hier aus dem Forum hier habe ich das ganze dann mal fertiggestellt.

Hier ist das ganze:
http://rapidshare.com/files/120694057/mcore-applet-0.2-1.tar.bz2.html%20target=

Wenn hier wer nur mal schnell in den code schauen will:
http://paste.pocoo.org/show/63974/





Das ist mein erstes ernstes python/pygtk überhaupt. Vorher habe ich nur c++ (auch einmal mit gtkmm) gemacht. Ich bin also ein Anfänger. Wenn wer Fehler oder ungereimtheiten im Code findet, bitte bescheid sagen. Auch wenn ihr sachen findet, die man "nur" besser machen kann solltet ihr mir das sagen. Es ist mein Projekt python zu lernen.

Zum installieren einfach entpacken und als root ./setup.py ausführen. Danach muss man gnome neu starten


Das ganze hat ein Problem:Ich sehe leider immer fast nur schwarz. Mein q6600 ist einfach nicht genug ausgelasstet... :(


Hier ein kleiner Screenshot:
Bild (von meinen wie schon gesagt 4 core system)
e\
updated 18:11 5.6.08
updated 16:00 6.6.08
updated 10:25 7.5.08
Zuletzt geändert von Schattenbringer1 am Samstag 7. Juni 2008, 09:23, insgesamt 4-mal geändert.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Donnerstag 5. Juni 2008, 16:56

Code: Alles auswählen

         if work <> 0:
            work/=all
         if idle <> 0:
            idle/=all


Schreib da lieber != .

Code: Alles auswählen

      stat = open('/proc/stat', 'r')
                load =[]
                for line in stat:
                        match=self.getcpu.match(line)
                        if match:
                                load.append([int(match.group(2)), float(match.group(2)), float(match.group(3)), float(match.group(4))])
      stat.close()
      return load

das eher so:

Code: Alles auswählen

      
        stat = open('/proc/stat', 'r')
        load =[]
        try:
            for line in stat:
                if self.getcpu.match(line):
                    load.append([int(match.group(2))] + [float(match.group(i)) for group in [2,3,4]])
        finally:
            stat.close()
      return load

damit die Datei auch sicher geschlossen wird.

Und noch so allgemein:
http://www.python.org/dev/peps/pep-0008/
Schattenbringer1
User
Beiträge: 9
Registriert: Mittwoch 4. Juni 2008, 16:34

Beitragvon Schattenbringer1 » Donnerstag 5. Juni 2008, 17:05

Das mit dem try-block macht sinn :) Bin halt noch von c++ gewöhnt, dass das autmoatisch geht. werde das gleich mal ändern und gleich uppen
den unterschied von <> und != verstehe ich ehrlich gesagt nicht. Wäre nett wen du mir sagen würdest warum das besser ist.

Das dokument werde ich mir mal bei gelegenheit durchlesen.

Danke für das Feedback
e\ist geupdated
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 5. Juni 2008, 17:50

Schattenbringer1 hat geschrieben:den unterschied von <> und != verstehe ich ehrlich gesagt nicht. Wäre nett wen du mir sagen würdest warum das besser ist.

Der Unterschied ist, dass quasi alle ``!=`` verwenden, nicht nur in Python. ``<>`` wird in Python 3.0 entfernt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Schattenbringer1
User
Beiträge: 9
Registriert: Mittwoch 4. Juni 2008, 16:34

Beitragvon Schattenbringer1 » Freitag 6. Juni 2008, 15:06

Version 0.2
So ich habe jetzt mal ein Grosses update gemacht.

-jetzt kann das Ding jetzt bei irgentjemanden ausser mir laufen :) (sorry an alle die es runtergeladen haben und wo es nicht funktioniert hat)
- wenn man jetzt auf das applet klicked öffnet sich gnome-system-monitor
-es nutzt jetzt psyco falls installiert.

(download im ersten Post)
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Freitag 6. Juni 2008, 15:24

audax hat geschrieben:das eher so:

Code: Alles auswählen

      
        stat = open('/proc/stat', 'r')
        load =[]
        try:
            for line in stat:
                if self.getcpu.match(line):
                    load.append([int(match.group(2))] + [float(match.group(i)) for group in [2,3,4]])
        finally:
            stat.close()
      return load

damit die Datei auch sicher geschlossen wird.

<hust>`with`-Statement!</hust>

Nachtrag: Wo soll das `match` in deiner veränderten Fassung herkommen?
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Freitag 6. Juni 2008, 15:28

Code: Alles auswählen

with open('/proc/stat', 'r') as stat:
            load =[]
            for line in stat:
                match = self.getcpu.match(line)
                if match:
                    load.append([int(match.group(2))] + [float(match.group(i)) for group in [2,3,4]])
        return load

Besserwisser...
Schattenbringer1
User
Beiträge: 9
Registriert: Mittwoch 4. Juni 2008, 16:34

Beitragvon Schattenbringer1 » Samstag 7. Juni 2008, 09:28

Das mit dem with statement funktioniert irgentwie nicht. Aber so wie ich das verstanden habe macht das eh keinen grossen unterschied.

Aber ich habe derweil mal einen recht fatalen fehler behoben, durch den das ding zu abstürtzen gebracht werden konnte.

Hat das ganzen den noch keiner Ausprobiert? SO wenige können in einen python forum ja gar nicht gnome haben. Auch wenn ihr ein Problem beim installiern habt, sagt bescheid. Es wird höchstwahrscheinlich an einen Fehler von mir liegen...
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » Samstag 7. Juni 2008, 10:27

Für das `with`-Statement bräuchtest du Python 2.5 und müsstest an den Anfang deines Quelltextes

Code: Alles auswählen

from __future__ import with_statement
schreiben.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 7. Juni 2008, 11:11

Schattenbringer1 hat geschrieben:Hat das ganzen den noch keiner Ausprobiert? SO wenige können in einen python forum ja gar nicht gnome haben.

Ich habe GNOME und 2 CPUs und sehe trotzdem keinen Nutzen darin. Für mich ist die Anzeige der Prozessorauslastung (ob es seperat oder kumuliert ist) eine nutzlose Spielerei, sorry.
Noch dazu hast du es bei Rapidshare hochgeladen, da hab ich schon gar keine Lust etwas herunterzuladen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » Samstag 7. Juni 2008, 11:24

Man könnte auch eine "standalone"-Funktion einbauen, für diejenigen, die PyGtk haben, aber kein gnome verwenden. Dazu erstellt man dann einfach ein gtk.Window und platziert das Applet darin. Etwa so. Dann müsste man zum eben Testen auch nichts mehr von Rapidshare herunterladen.

Außerdem scheint das ``gnome.applet``-Modul deprecated zu sein und man sollte ``gnomeapplet`` stattdessen verwenden.
Schattenbringer1
User
Beiträge: 9
Registriert: Mittwoch 4. Juni 2008, 16:34

Beitragvon Schattenbringer1 » Samstag 7. Juni 2008, 13:37

Leonidas hat geschrieben:
Schattenbringer1 hat geschrieben:Hat das ganzen den noch keiner Ausprobiert? SO wenige können in einen python forum ja gar nicht gnome haben.

Ich habe GNOME und 2 CPUs und sehe trotzdem keinen Nutzen darin. Für mich ist die Anzeige der Prozessorauslastung (ob es seperat oder kumuliert ist) eine nutzlose Spielerei, sorry.
Noch dazu hast du es bei Rapidshare hochgeladen, da hab ich schon gar keine Lust etwas herunterzuladen.

Deine sache. Habe vieleicht ein bischen überreagiert. Also ich habe das als ganz nützlich empfunden, als ich ein bischen mit c und pthread's rumgespielt habe. Ich finde das eigentlich immer ganz interresant

Kannst du mir den eine kostenlose alternative zu rapidshare nennen? Ich bin gerne bereit das irgentwo anders hochzuladen. Rapidshare war nur das, was mir als erstes eingefallen ist.

@Trundle: danke. Habe das schon im git. werde ein bisschen testen und wenn es keine Probleme gibt (wovon ich ausgehe) hochladen. Ich hatte das "from __future__ import with_statement" nach den anderen imports :)

e\ und ein Teil seines sinnes hat das Programm schon erfüllt: Ich habe mehr zu python und pygtk gelernt.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 7. Juni 2008, 13:52

Schattenbringer1 hat geschrieben:Kannst du mir den eine kostenlose alternative zu rapidshare nennen? Ich bin gerne bereit das irgentwo anders hochzuladen. Rapidshare war nur das, was mir als erstes eingefallen ist.

Irgendein kostenloser Webspace müsste es schon tun.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Schattenbringer1
User
Beiträge: 9
Registriert: Mittwoch 4. Juni 2008, 16:34

Beitragvon Schattenbringer1 » Samstag 7. Juni 2008, 14:05

Bei allen freehostern die ich kenne muss man eine HP haben, sonst wird der Space recht schnell wieder gelöscht. Ich habe vor einiger Zeit mal bei Funpic einige Bilder und Downloads gelagert(ohne HP). Eines tages waren die einfach unangekündigt weg. Das war ein Spass alle möglichen links wieder umzubiegen

Und eine HP zu machen habe ich grade nicht das bedürfnis. Insbesonderen nicht mit PHP.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Samstag 7. Juni 2008, 21:46

Wenn du nicht gerade absolut hingefrickelte Codezeilen hast, kannst du deine Releases auch im Käseladen auf die Theke legen.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder