[Python][ZODB] récuperer les attributs d'un objet par reflexivité

récuperer les attributs d'un objet par reflexivité [Python][ZODB] - Python - Programmation

Marsh Posté le 12-07-2004 à 10:39:05    

Un soucis qu'on a avec les portails sous Zope, c'est l'impossibilité d'estimer l'espace disque pris par une rubrique et ces sous dossiers.
 
(si c'est faisable, merci de m'arreter de suite)
 
J'essaye donc de faire cette estimation moi-même. On utilise DirectoryStorage comme backend pour la Zodb. Un fichier == un objet, donc ca me simplifie la tâche.
 
J'arrive a récupérer le fichier de stockage d'un objet arbitraire :

Code :
  1. db = ZODB.DB(storage)
  2. connection = db.open()
  3. root = connection.root()
  4. zope = root['Application']
  5. def pathToObject(path):
  6.   pathElems = path.split('/')
  7.   obj = zope
  8.   for elem in pathElems:
  9.     if elem:
  10.       obj = obj[elem]
  11.   return obj


 
plus encore un peu de sauce propre a DirectoryStorage.  
Le probleme, c'est qu'un document a evidement pas mal d'attributs, que ce soit un commentaire ou un fichier par exemple.
 
Il me faudrait donc itérer parmis tout ca et ajouter la taille de ces elements. D'habitude, j'utilise  

Code :
  1. dir(objet)


pour ca, mais la ca ne me renvoit pas tout.
 
il y a autre chose pour récuperer les attributs, qui marchent avec les anciennes classes, et les nouvelles ?

Reply

Marsh Posté le 12-07-2004 à 10:39:05   

Reply

Marsh Posté le 12-07-2004 à 10:58:40    

bon, pour les fichiers, j'ai trouvé, le portail que j'utilise (un CPS 2) les mets dans un _file.
mais pour tout récuperer, la question reste posée.

Reply

Marsh Posté le 16-08-2004 à 11:18:11    

up ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed