Seite 1 von 1

Einfache Schleife über Dictionary funktioniert nicht!

Verfasst: Montag 27. April 2009, 14:38
von richx
Hallo!

Ich benutze Trac- ein hervorrangendes Tool zur gemeinschaftlichen Entwicklung - und sog. Subversion Commit Hooks. Das sind Skripte die ausgeführt werden, nachdem ein Subversion commit ausgeführt wird - in diesem Fall um automatisch Kommentare in die im Commit-Comment erwähnten Tickets zu schreiben.

Das Skript welches ich benutze gibts hier:
http://trac.edgewall.org/browser/trunk/ ... ommit-hook

Das Script sucht per Regexp nach einem Kommando, z.b. "fix" und schliesst dann das entsprechende Ticket. Ich möchte nun, dass für sämmtliche Tickets die erwähnung finden, das Kommando "_cmdRefs" ausgeführt wird!

Dazu habe ich folgende For-Schleife eingebaut, nach tickets = {}

Code: Alles auswählen

        for tkt_id in ticket_re.findall(self.msg):
            tickets.setdefault(tkt_id,[]).append('_CmdRefs')
Das sollte meiner Meinung nach die Tickets finden, und einfach zur Liste hinzufügen. Geht allerdings nicht. Geht gar nix mehr. Was mache ich falsch?

Vielen Dank!

Gruß!

Verfasst: Montag 27. April 2009, 17:10
von Leonidas
Hallo richx, willkommen im Forum,

Ist ja klar dass das nicht funktioniert, denn du übergibst ja dort einen String und im Ursprungscode (``tickets.setdefault(tkt_id, []).append(func)``) ist ``func`` ein Funktionsobjekt. Also musst du zumindest mal statt dem String ein Funktionsobjekt hernehmen.

Verfasst: Montag 4. Mai 2009, 09:31
von richx
Ahh, super, danke für die Antwort! Abgeändert funktioniert es:

Code: Alles auswählen

        for tkt_id in ticket_re.findall(self.msg):
            func = getattr(self, '_cmdRefs')
            tickets.setdefault(tkt_id,[]).append(func)
Danke nochmal!!

Richx