def __init__(self): self.frame = Frame() self.condition = Condition() self.port = 8080 self.connected = False self.sample = "" self.max_sockets = 1024 self.stream_id = b'12345' self.threads = []
def make_frame(self, code, callargs={}, global_names=None, local_names=None): """ make frame :rtype: object """ if global_names is not None and local_names is not None: local_names = global_names elif self.frames: global_names = self.current_frame.global_names local_names = {} else: global_names = local_names = { '__builtins__': __builtins__, '__name__': '__main__', '__doc__': None, '__package__': None, } local_names.update(callargs) frame = Frame(code, global_names, local_names, self.current_frame) return frame
def __init__(self): # create default personalities cm = Character_Manager() cm.save("character_default") cm.save("character_stable") cm.save("character_empathetic") cm.save("character_irascible") # set up logging logging.basicConfig( level=logging.INFO, filename='../logs/app.log', filemode="w", format='%(asctime)s %(name)s/%(levelname)s - - %(message)s', datefmt='%d.%m.%y %H:%M:%S') self.logger = logging.getLogger("controller") self.logger.setLevel(logging.INFO) # read config file and save values in variables self.config = configparser.ConfigParser() self.config.read("../config/config.ini") self.botname = self.config.get("default", "botname") self.username = self.config.get("default", "username") self.classifier_data = [ self.config.get("net", "classifier_type"), self.config.get("net", "dataset"), self.config.get("net", "feature_set") ] self.logger.info("Conifg loaded: {}, {}, {}".format( self.botname, self.username, self.classifier_data)) # initialize emotional variables self.lex_happiness = pd.read_csv("../lexica/clean_happiness.csv", delimiter=",", dtype={ "text": str, "affect": str, "stems": str }, float_precision='round_trip') self.lex_sadness = pd.read_csv("../lexica/clean_sadness.csv", delimiter=",", dtype={ "text": str, "affect": str, "stems": str }, float_precision='round_trip') self.lex_anger = pd.read_csv("../lexica/clean_anger.csv", delimiter=",", dtype={ "text": str, "affect": str, "stems": str }, float_precision='round_trip') self.lex_fear = pd.read_csv("../lexica/clean_fear.csv", delimiter=",", dtype={ "text": str, "affect": str, "stems": str }, float_precision='round_trip') self.LIST_OF_LEXICA = self.lex_happiness, self.lex_sadness, self.lex_anger, self.lex_fear self.list_happiness = self.lex_happiness["stems"].tolist() self.list_sadness = self.lex_sadness["stems"].tolist() self.list_anger = pd.Series(self.lex_anger["stems"].tolist()) self.list_fear = self.lex_fear["stems"].tolist() self.lex_happiness_adj = pd.read_csv( "../lexica/clean_happiness_adj.csv", delimiter=",", dtype={ "text": str, "intensity": float }, float_precision='round_trip') self.lex_sadness_adj = pd.read_csv("../lexica/clean_happiness_adj.csv", delimiter=",", dtype={ "text": str, "intensity": float }, float_precision='round_trip') self.lex_anger_adj = pd.read_csv("../lexica/clean_happiness_adj.csv", delimiter=",", dtype={ "text": str, "intensity": float }, float_precision='round_trip') self.lex_fear_adj = pd.read_csv("../lexica/clean_happiness_adj.csv", delimiter=",", dtype={ "text": str, "intensity": float }, float_precision='round_trip') self.logger.info("Lexica loaded") # initialize ml-variables if self.config.getboolean("default", "firstlaunch"): # das md-model ist ca 80mb, das lg ca 1g # self.nlp = spacy.load("en_core_web_lg") self.nlp = spacy.load("en_core_web_md") else: self.nlp = spacy.load("../models/spacy") self.spell = SpellChecker() # create bot, responsible for generating answers and classifier, for analysing the input self.character = Character( self.config.getboolean("default", "firstlaunch")) self.classifier = Classifier(self.classifier_data, self.LIST_OF_LEXICA, self.nlp) self.bot = Bot(self.lex_happiness, self.lex_sadness, self.lex_anger, self.lex_fear, self.list_happiness, self.list_sadness, self.list_anger, self.list_fear, self.lex_happiness_adj, self.lex_sadness_adj, self.lex_anger_adj, self.lex_fear_adj, self.nlp) if self.config.getboolean("default", "firstlaunch"): self.bot.train() # create frame and update widgets with initial values self.frame = Frame(self.botname, self.character.get_emotional_state(), self.character.get_emotional_history()) self.frame.register_subscriber(self) self.frame.show() # save all session data after the frame is closed self.save_session() logging.shutdown()