def returnsubsections(flag,section,initiative=True,subsections=None):
    if flag and initiative:
        subsections += list(ConfigurationManager.readCuckooResultsConfig(variable='subsections',section=section).split(','))
        for subsection in subsections:
            subsections+=returnsubsections(flag=literal_eval(ConfigurationManager.readCuckooResultsConfig(variable='encapsulation',section='subsection_'+subsection)),
                              section='subsection_'+subsection,subsections=[],initiative=False)
        return subsections
    elif flag:
        subsections += list(ConfigurationManager.readCuckooResultsConfig(variable='subsections',section=section).split(','))
        for subsection in subsections:
            returnsubsections(flag=literal_eval(ConfigurationManager.readCuckooResultsConfig(variable='encapsulation',section='subsection_'+subsection)),
                              section='subsection_'+subsection,subsections=[],initiative=False)
        return subsections
    else:
        return subsections
 def __init__(self,section,filename=None,data_results=None):
     self.logger = Logger()
     self.key=ConfigurationManager.readCuckooResultsConfig(variable='key',section=section)
     self.encapsulation = literal_eval(ConfigurationManager.readCuckooResultsConfig(variable='encapsulation',section=section))
     self.keys = list(ConfigurationManager.readCuckooResultsConfig(variable='keys',section=section).split(','))
     #Check if there are not any keys
     if self.keys==['']:
         self.keys=None
     self.subsectionskeys={}
     if self.encapsulation:
         self.subsections = returnsubsections(self.encapsulation,section=section,subsections=[])
         for subsection in self.subsections:
             self.subsectionskeys[ConfigurationManager.readCuckooResultsConfig(variable='key',section='subsection_'+subsection)] = list(ConfigurationManager.readCuckooResultsConfig(variable='keys',section='subsection_'+subsection).split(','))
     results=None
     try:
         if data_results is not None:
             results=data_results[self.key]
         elif filename is not  None:
             results = load_results(filename)[self.key]
     except Exception, e:
         self.logger.errorLogging(str(e))