Browse Source

[Feature] Singleton Brain

monf 8 years ago
parent
commit
c130e49c6d

+ 7 - 7
core/ConfigurationManager/BrainLoader.py

@@ -4,7 +4,6 @@ import os
 
 
 from YAMLLoader import YAMLLoader
 from YAMLLoader import YAMLLoader
 from core.ConfigurationManager.ConfigurationChecker import ConfigurationChecker
 from core.ConfigurationManager.ConfigurationChecker import ConfigurationChecker
-from core.Models import Singleton
 from core.Models.Brain import Brain
 from core.Models.Brain import Brain
 from core.Models.Event import Event
 from core.Models.Event import Event
 from core.Models.Neuron import Neuron
 from core.Models.Neuron import Neuron
@@ -14,14 +13,14 @@ from core.Models.Synapse import Synapse
 logging.basicConfig()
 logging.basicConfig()
 logger = logging.getLogger("kalliope")
 logger = logging.getLogger("kalliope")
 
 
-@Singleton
+
 class BrainLoader(object):
 class BrainLoader(object):
 
 
     def __init__(self):
     def __init__(self):
         pass
         pass
 
 
     @classmethod
     @classmethod
-    def _get_yaml_config(cls, file_path=None):
+    def get_yaml_config(cls, file_path=None):
         if file_path is None:
         if file_path is None:
             brain_file_path = cls._get_root_brain_path()
             brain_file_path = cls._get_root_brain_path()
         else:
         else:
@@ -29,18 +28,19 @@ class BrainLoader(object):
         return YAMLLoader.get_config(brain_file_path)
         return YAMLLoader.get_config(brain_file_path)
 
 
     @classmethod
     @classmethod
-    def _get_brain(cls, file_path=None):
+    def get_brain(cls, file_path=None):
         """
         """
         return a brain object from YAML settings
         return a brain object from YAML settings
         :return: Brain object
         :return: Brain object
         :rtype: Brain
         :rtype: Brain
         """
         """
-        # get the brain with dict
-        dict_brain = cls._get_yaml_config(file_path)
+
         # create a new brain
         # create a new brain
         brain = Brain.Instance()
         brain = Brain.Instance()
-
+        logger.debug("Is brain already loaded ? %r" % brain.is_loaded)
         if brain.is_loaded is False:
         if brain.is_loaded is False:
+            # get the brain with dict
+            dict_brain = cls.get_yaml_config(file_path)
 
 
             brain.brain_yaml = dict_brain
             brain.brain_yaml = dict_brain
             # create list of Synapse
             # create list of Synapse

+ 3 - 1
core/Models/__init__.py

@@ -1,5 +1,7 @@
+from Singleton import Singleton
 from Event import Event
 from Event import Event
 from Brain import Brain
 from Brain import Brain
 from Order import Order
 from Order import Order
 from Synapse import Synapse
 from Synapse import Synapse
-from Neuron import Neuron
+from Neuron import Neuron
+

+ 1 - 0
core/__init__.py

@@ -3,3 +3,4 @@ from core.OrderListener import OrderListener
 from core.ShellGui import ShellGui
 from core.ShellGui import ShellGui
 from core.FileManager import FileManager
 from core.FileManager import FileManager
 from core.Utils import Utils
 from core.Utils import Utils
+

+ 1 - 2
install/files/python_requirements.txt

@@ -1,7 +1,6 @@
 SpeechRecognition==3.4.6
 SpeechRecognition==3.4.6
 pyaudio==0.2.9
 pyaudio==0.2.9
 ansible==2.1.1.0
 ansible==2.1.1.0
-pygame
 python2-pythondialog==3.4.0
 python2-pythondialog==3.4.0
 jinja==1.2
 jinja==1.2
 python-crontab==2.1.1
 python-crontab==2.1.1
@@ -14,4 +13,4 @@ pyowm==2.5.0
 python-twitter==3.1
 python-twitter==3.1
 flask==0.11.1
 flask==0.11.1
 Flask-Restful==0.3.5
 Flask-Restful==0.3.5
-wikipedia==1.4.0
+wikipedia==1.4.0

+ 7 - 5
test.py

@@ -1,12 +1,7 @@
 # coding: utf8
 # coding: utf8
 import logging
 import logging
 
 
-from core import OrderAnalyser
-from core import Utils
-from core.ConfigurationManager import SettingLoader
 from core.ConfigurationManager.BrainLoader import BrainLoader
 from core.ConfigurationManager.BrainLoader import BrainLoader
-from core.Players import Mplayer
-from core.RestAPI.FlaskAPI import FlaskAPI
 
 
 logging.basicConfig()
 logging.basicConfig()
 logger = logging.getLogger("kalliope")
 logger = logging.getLogger("kalliope")
@@ -15,7 +10,14 @@ logger.setLevel(logging.DEBUG)
 
 
 brain = BrainLoader.get_brain()
 brain = BrainLoader.get_brain()
 
 
+brain2 = BrainLoader.get_brain()
+brain3 = BrainLoader.get_brain()
+brain4 = BrainLoader.get_brain()
 
 
 
 
+print brain is brain2
+print brain is brain3
+print brain is brain4
+print brain4 is brain2