Unbeabsichtigte Schleife

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

1. Tut mir Leid wegen dem unkreativen Titel, mir ist nichts Vielsagenderes eingefallen.

Und jetzt zu meinem Problem:

http://paste.pocoo.org/show/79402/ - Das ist mein Source code.

Die Klasse ist einfach dazu da um mit einer TiddlyWiki (tiddlywiki.com) zu interagieren. Die entsprechnden Methoden sollten fast eigentlich alles aussagen.
Benutzt wird die Klasse z.B so:

Code: Alles auswählen

x = TiddlyWiki(path)
for tiddler in x.tiddlers:
    print tiddler + ' by ' +  x.tiddlers[tiddler].author
Soo, einen komplett neuen Tiddler zu erstellen ist eigentlich auch simple:

Code: Alles auswählen

x.new_tiddler(title, modifier, created, content) #Die restlichen Parameter sind optional
Am ende speichert man das ganze dann mit:

Code: Alles auswählen

x.save()
Dabei werden vorher alle Änderungen die in dem Klassen-Dictionary "x.tiddlers" gemacht worden sind zurück in die Soup geschrieben. Daraufhin wird der Bereich in der Soup in dem die Tiddler gespeichert werden in einer Variable gespeichert und "von Hand" mit dem vorherigen Bereich ersetzt. Das musste ich leider so machen da BeautifulSoup die TiddlyWiki zerstört sobald sie geparst worden ist, nur die Store-Area ist noch ok.

Aber jetzt zu meinem eigentlichen Problem. Wenn ich die Änderungen zurückschreibe habe ich nachher anstatt nur einen neuen Tiddler:
<div title="irgwas" modifier="irgendwer" created="irgendwann">
<pre> CONTENT </pre>
</div>
Ungefähr 100+ in der TiddlyWiki stehen. Für mich heißt das, dass irgendwie der else Zweig so oft wie eine der beiden Schleifen ausgeführt wird aber ich kann nicht erkennen wieso und wann.

Könntet ihr mir auf die Sprünge helfen? Und Ich bin mir sicher mein Code ist grausam, also macht mich bitte darauf aufmerksam wenn ich etwas effizienter/schöner gestalten kann.

@luna:
Ich weiß ich habe gesagt das ich lxml.html verwenden werde, aber für sowas kleines benutzt ich doch lieber BeautifulSoup.

MfG,
CracKPod
Antworten