Klassen (
Document [put, delete] und eine
Storage [get, select]) waren sogar meine ersten Überlegungen. Im Grunde hätten diese jedoch lediglich ein Attribut
base bereitgehalten und statt base hätte ich nun ein
self.base durch die Methoden schleifen müssen; darüber hinaus eben zwei Klassen und entsprechende Objekte gehabt.
Hier empfinde ich freie Funktionen angenehmer und natürlicher. Die
partial-Funktion ist hier lediglich ein Hilfsmittel. Das Basisverzeichnis kann ohne weiteres direkt angegeben werden (
document.get,
document.set,
document.delete und
document.select gehören zur API).
Darüber hinaus ist
partial keine Spielerei
Meines Erachtens muss die Datei nicht binär geöffnet werden. JSON erstellt Textdateien, Standardkodierung ist hier UTF-8. In der Python-Dokumentation zu
open ist sogar explizit aufgeführt, dass
'w' plattformunabhängig ist. Ich lasse mich auch gerne vom Gegenteil überzeugen.
Grüße ... bwbg
@BlackJack: Der Wink mit
namedtuple ist großartig (dass ich da nicht selbst drauf gekommen bin). Der Name partial ist schon sehr speziell, das muss ich zugeben. Create oder new passen aber m. E. nicht gut, da man es sehr schnell mit den anderen Funktionen in Verbindung setzen kann. Ursprünglich hieß die Funktion
functions.
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"