WIP: nettoyage + TODO list

This commit is contained in:
Jean Sirmai 2021-12-11 19:01:38 +01:00
parent 9261bc03cf
commit 3517e73de4
Signed by: jean
GPG Key ID: FB3115C340E057E3
4 changed files with 52 additions and 45 deletions

View File

@ -36,8 +36,8 @@
<xs:complexType> <xs:complexType>
<xs:simpleContent> <xs:simpleContent>
<xs:extension base="xs:string"> <xs:extension base="xs:string">
<xs:attributeGroup ref="id_date_author"/> <xs:attributeGroup ref="id_date_author"/>
<xs:attribute ref="lang" use="required"/> <xs:attribute ref="lang" use="required"/>
</xs:extension> </xs:extension>
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
@ -112,14 +112,14 @@
<xs:sequence minOccurs="1" maxOccurs="1"> <xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="identity"> <xs:element name="identity">
<xs:complexType> <xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1"> <xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="name" type="xs:string"/> <xs:element name="name" type="xs:string"/>
<xs:element name="owner" type="xs:string"/> <xs:element name="owner" type="xs:string"/>
<xs:element name="owner_id" type="xs:integer"/> <xs:element name="owner_id" type="xs:integer"/>
<xs:element name="date" type="xs:integer"/> <xs:element name="date" type="xs:integer"/>
<xs:element name="version" type="xs:float"/> <xs:element name="version" type="xs:float"/>
<xs:element ref="g_ref" minOccurs="1" maxOccurs="1"/> <xs:element ref="g_ref" minOccurs="1" maxOccurs="1"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>

Binary file not shown.

View File

@ -3,23 +3,31 @@ from anytree import Node, AnyNode, NodeMixin, RenderTree
from anytree.exporter import DotExporter from anytree.exporter import DotExporter
from ete3 import Tree from ete3 import Tree
cset = {(0,0,'root')} # TODO 1) get_node_self_id <> pas de doublon # TODO Contrôles de cohérence des données
# TODO 2) un node_parent_id existe toujours # 1) node_id <> pas de doublon
# 2) pas de node sans un node_parent_id
for i in range (0, len(model.testmodel.get_conditions().get_condition_array())): conditions_set = set()
for i in range (0, len(model.testmodel.get_conditions().get_conditions_array())):
cnd = model.testmodel.get_conditions().get_condition(i) cnd = model.testmodel.get_conditions().get_condition(i)
cset.add((cnd.get_node_self_id(), cnd.get_node_parent_id(), cnd.get_weight())) # TODO coord conditions_set.add((cnd.get_node_self_id(),
cnd.get_node_parent_id(),
cnd.get_coord("x"),
# TODO cnd.get_coord("y"),...
cnd.get_site(),
cnd.get_weight()))
class TreeNode(object): class TreeNode(object):
def __init__(self, id, parent, weight, coord): def __init__(self, id, parent, x, site, weight):
self.id = id self.id = id
self.parent = parent self.parent = parent
self.children = None
self.weight = weight
self.coord = coord
self.ch = [] self.ch = []
self.x = x
# TODO self.y = y,...
self.site = site
self.weight = weight
def id(self): return id def id(self): return id
@ -27,24 +35,20 @@ class TreeNode(object):
self.ch.append(ch_id) self.ch.append(ch_id)
self.ch = sorted(self.ch, key=id) self.ch = sorted(self.ch, key=id)
l = [] l = []
tnn = TreeNode(0, 0, 0, 0) for i in conditions_set: # sorted(conditions_set, key=id):
cndt = TreeNode(i[0], i[1], i[2], i[3], i[4]) # TODO y,z,...
for i in cset: # sorted(cset, key=id):
cndt = TreeNode(i[0], i[1], i[2], 0)
l.append(cndt) l.append(cndt)
for i in l: for i in l:
for j in l: for j in l:
if (i.id == j.parent): if (i.id == j.parent):
i.add_child(j) i.add_child(j)
else:
i.add_child(tnn)
for i in l: for i in l:
print(i.id,' ',i.parent,' [',i.ch[0].id,' ',i.ch[1].id,' ',i.ch[2].id,' ',i.ch[3].id,' ',i.ch[4].id,']') cnd = str(i.id) + ' ' + str(i.parent) + ' [' + str(len(i.ch)) + ']'
print(cnd)
@ -53,30 +57,32 @@ for i in l:
"""
## ##
sp = model.testmodel.get_states().get_space(0) sp = model.testmodel.get_states().get_space(0)
size = model.testmodel.get_parameters().spaceparam.get_dimension().get_x() size = model.testmodel.get_parameters().spaceparam.get_dimension().get_x()
nb_sites = int (model.testmodel.get_parameters().spaceparam.get_site_multiplicity()) nb_sites = int (model.testmodel.get_parameters().spaceparam.get_site_multiplicity())
nb_arrows = int (model.testmodel.get_states().get_space(0).get_nb_arrows()) nb_arrows = int (model.testmodel.get_states().get_space(0).get_nb_arrows())
weight = int (model.testmodel.get_states().get_space(0).get_arrow(0).get_weight()) weight = int (model.testmodel.get_states().get_space(0).get_arrow(0).get_weight())
# TODO Contrôles cohérence des données (module à prévoir) # TODO Contrôles de cohérence des données
# pour condition et arrow : weight < weight_max (à définir) # condition et arrow
# pour condition et arrow : arrow.site < site_multiplicity # 1) weight < weight_max (à définir)
# pour condition et arrow : arrow.x < space-param.dimension.x (idem autres axes) # 2) arrow.site < site_multiplicity
# condition.parent <= condition.node_id max value (donc deux lectures) # 3) arrow.x < space-param.dimension.x (idem autres axes)
# condition
# 1) parent <= condition.node_id max value (donc deux lectures)
# 2) pas de node sans un node_parent_id
space = [] space = []
cells = [] cells = []
@ -116,4 +122,4 @@ print (cells)
print() print()
print (space) print (space)
"""

View File

@ -263,6 +263,7 @@ class Condition:
self.node = node self.node = node
def get_coord(self, axis): def get_coord(self, axis):
# print(self.node.get(axis))
return int(self.node.get(axis)) return int(self.node.get(axis))
def set_coord(self, axis, value): def set_coord(self, axis, value):
@ -305,7 +306,7 @@ class Conditions:
def get_condition(self, i): def get_condition(self, i):
return self.__conditions[i] return self.__conditions[i]
def get_condition_array(self): def get_conditions_array(self):
return self.__conditions return self.__conditions
class Transition: class Transition:
@ -333,7 +334,7 @@ class Transitions:
def get_transition(self, i): def get_transition(self, i):
return self.__transitions[i] return self.__transitions[i]
def get_transition_array(self): def get_transitiosn_array(self):
return self.__transitions return self.__transitions
## Model ## Model