1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
class VALS():
"""
table de valeur
"""
def __init__(self, vals):
self.vals = vals
class VAR():
"""
Classe variable, mermettant de stocker
l'origine, le nom et l'unité de la variable
"""
def __init__(self, name, unit='', comment=''):
self.name = name
self.unit = unit
self.comment = comment
self.connected_zones = dict() #dictionnaire liant les zones avec les vals
def __str__(self):
return u' Nom de la variable: '+ self.name + '\n' + \
u'| Unitée : '+ self.unit + '\n' + \
u'| Commentaire : '+ self.comment + '\n' #+ \
class ZONE ():
"""
Classe zone liée à plusieurs variables
"""
def __init__(self, name, comment = None):
self.name = name
self.comment = comment
self.connected_vars = dict()
def __str__(self):
return self.name
class DATASET():
"""
la Classe dataset permet de gérer des zones
recherche de variables...
"""
def __init__(self):
"""
création d'un tableau de zones
"""
self.vals_db=[]
self.zones=[]
self.vars=[]
def add_zone(self, zone):
if self.search_zone(zone):
# print u'cette zone existe déjà. !!!!'
#print self.search_zone(zone):
else:
self.zones.append(zone)
return self.zones[-1]
def add_var(self, var):
if self.search_var(var):
# print u'cette variable existe déjà. !!!!'
#print self.search_zone(zone):
else:
self.vars.append(var)
return self.vars[-1]
def add_vals(self, vals, zone, var):
# print u"début add_vals"
zone = self.add_zone(zone)
var = self.add_var(var)
self.vals_db.append(vals)
if var not in zone.connected_vars:
zone.connected_vars[var]=vals
else:
print u'un tableau de valeur est déjà associé à cette zone et cette variable'
print u"écrasement de l'ancien tableau"
if zone not in var.connected_zones:
var.connected_zones[zone]=vals
else:
print u"une erreur c'est produite"
def search_zone(self,zone):
for z in self.zones:
if zone.name == z.name:
#print 'cette zone existe '
return z
return None
def search_var(self,var):
for v in self.vars:
if var.name == v.name:
#print 'cette zone existe '
return v
return None
#
D = DATASET()
Z1=ZONE("Z1")
Z2=ZONE("Z2")
V1=VAR("V1")
V2=VAR("V2")
V3=VAR("V3")
VALs_z1_v1=[1,2,3]
D.add_vals(VALs_z1_v1,Z1,V1)
print 'ok1'
VALs_z1_v2=[4,5,6]
D.add_vals(VALs_z1_v2,Z1,V2)
print 'ok2'
VALS_z2_v2=[1,2]
D.add_vals(VALS_z2_v2,Z2,V2)
print 'ok3'
VALS_z2_v3=[3,4]
D.add_vals(VALS_z2_v3,Z2,V3)
D.vars[0].connected_zones[Z1] #renvoie [1, 2, 3]
D.zones[0].connected_vars[V1] #même chose puisque même objet vals
D.zones[0].connected_vars[V1]=[1,2,3,4,5,6]
D.zones[0].connected_vars[V1] #renvoie [1,2,3,4,5,6]
D.vars[0].connected_zones[Z1] #renvoie [1, 2, 3] !!! |
Partager