| 123456789101112131415161718192021222324252627282930313233343536 | 
							- from intelligine.core.exceptions import BrainPartAlreadyExist
 - from intelligine.cst import BRAIN_SCHEMA
 - 
 - 
 - class Brain():
 - 
 -     _brain_parts = {}
 - 
 -     def __init__(self, context, host):
 -         self._context = context
 -         self._host = host
 -         self._schema = {}
 -         self._parts = {}
 -         self._init_parts()
 - 
 -     def _init_parts(self):
 -         for brain_part_name in self._brain_parts:
 -             self._set_brain_part(brain_part_name, self._brain_parts[brain_part_name](self))
 - 
 -     def _set_brain_part(self, name, brain_part, replace=False):
 -         if name in self._parts and not replace:
 -             raise BrainPartAlreadyExist()
 -         self._parts[name] = brain_part
 -         self._update_schema()
 - 
 -     def get_part(self, name):
 -         return self._parts[name]
 - 
 -     def _update_schema(self):
 -         self._schema = {}
 -         for part_name in self._parts:
 -             self._schema[part_name] = self._parts[part_name].__class__
 -         # TODO: N'est-ce pas un schema appartenant a la classe ? Ne suffirai t-il pas de stocker ce schema par classe
 -         # plutôt que par objet ?
 -         self._context.metas.value.set(BRAIN_SCHEMA, self._host.get_id(), self._schema)
 
 
  |