From e081f7d053ccc98cd4ffe3210f12364777add3a5 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Mon, 26 Nov 2012 10:59:16 +0100 Subject: [PATCH] Correction for coherency of list behaviour --- src/daComposant/daCore/Persistence.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/daComposant/daCore/Persistence.py b/src/daComposant/daCore/Persistence.py index f2251a2..c1b6211 100644 --- a/src/daComposant/daCore/Persistence.py +++ b/src/daComposant/daCore/Persistence.py @@ -98,6 +98,28 @@ class Persistence: if self.__step in scheduler: hook( self, parameters ) + def pop(self, item=None, step=None): + """ + Retire une valeur enregistree. Par defaut, retire par le numero d'item, + sinon cherche le step demande et le retire s'il existe. Sans argument, + retire le dernier objet enregistre. + Attention, la liste des cles "tagkeys" n'est pas mise a jour. + """ + if item is not None: + index = int(item) + self.__steps.pop(index) + self.__values.pop(index) + self.__tags.pop(index) + elif step is not None: + index = int(self.__steps.index(int(step))) + self.__steps.pop(index) + self.__values.pop(index) + self.__tags.pop(index) + else: + self.__steps.pop() + self.__values.pop() + self.__tags.pop() + def shape(self): """ Renvoie la taille sous forme numpy du dernier objet stocké. Si c'est un @@ -1116,6 +1138,10 @@ if __name__ == "__main__": print "Les pas de stockage :", OBJET_DE_TEST.keys() print "Les valeurs :", OBJET_DE_TEST.values() print "Les paires :", OBJET_DE_TEST.items() + OBJET_DE_TEST.pop(step=1) + print "Les valeurs sans la 1:", OBJET_DE_TEST.values() + OBJET_DE_TEST.pop(item=2) + print "Les valeurs sans la 2:", OBJET_DE_TEST.values() del OBJET_DE_TEST print -- 2.39.2