Salome HOME
CCAR: mise a jour proc distrib
[tools/eficas.git] / AIDE / aide_objets.py
1 """
2 Ce module génère un objet INDEX par lecture et interprétation du fichier texte
3 le décrivant (ex : index_aide.py)
4 """
5
6 import os
7
8 class ITEM_INDEX :
9    """
10    Construit un objet ITEM_INDEX
11    """
12    def __init__(self,t_item):
13        self.t_item = t_item
14        self.init()
15
16    def init(self):
17        """
18        Initialise les structures de données de l'item
19        """
20        self.titre = ""
21        self.fichier = ""
22        self.l_items = []
23               
24    def build(self):
25        """
26        Construit les sous-items de self s'il y a lieu et retoruve le label et le fichier de l'item
27        dans le tuple
28        """
29        self.titre = self.t_item[0]
30        self.fichier = self.t_item[1]
31        l_items = self.t_item[2]
32        if l_items :
33           for item in l_items :
34              o = ITEM_INDEX(item)
35              o.build()
36              self.l_items.append(o)
37
38 class INDEX :
39    """
40    Construit un objet INDEX (non graphique) à partir de l'interprétation du fichier d'index
41    (type index_aide.py) passé en argument
42    """
43    def __init__(self,fichier_index):
44        self.fichier_index = fichier_index
45        self.init()
46        
47    def init(self):
48       """
49       Initialise les structures de données propres à l'index
50       """
51       self.titre = ""
52       self.fichier = None
53       self.l_items = []
54       
55    def build(self):
56       """
57       Lit le fichier index et l'interprète
58       """
59       txt = open(self.fichier_index,'r').read()
60       d = {}
61       d['repertoire']=os.path.dirname(self.fichier_index)
62       #txt = "items ="+txt
63       #print txt
64       exec txt in d
65       items = d.get("items",None)
66       if items :
67          self.titre = items[0]
68          self.fichier = items[1]
69          l_items = items[2]
70          for item in l_items :
71             o = ITEM_INDEX(item)
72             o.build()
73             self.l_items.append(o)
74
75       
76