Пример #1
0
 def generate_movie(self):
     if self.__p__.parameters_info_count == 0:
         self.getParser()
     self.__p__.prepareParameters()
     self.__save_members__()
     self.__pp_generator__ = PoincarePlotGenerator(parameters=self.__p__)
     message = self.__p__.validateParameters()
     if message:
         print(message)
         return
     self.info(valued_only=True)
     self.__process__(self.__process_file_for_movie__)
Пример #2
0
    def start(self):
        """
        method initiate show up of poincare progress bar
        """
        self.__interrupted__ = False

        #parameter formatted_summary_statistics is used to store
        #calculated summary statistics
        if not self.params.formatted_summary_statistics == None:
            self.params.formatted_summary_statistics[:] = []

        outcomes_exist_info = []
        progressManager = ProgressDialogManager(
            self.parent, count=len(self.__data_vector_accessor_list__))
        for data_vector_accessor in self.__data_vector_accessor_list__:
            parameters = \
                data_vector_accessor.parameters_container.parameters.get(PoincarePlotParameters.NAME) #  alias @IgnorePep8
            parameters.prepareParameters()
            pp_generator = PoincarePlotGenerator(
                output_file_listener=self.params.output_file_listener,
                parameters=parameters)
            if self.params.save_csv == True:
                (ok,
                 _) = pp_generator.precheck(data_vector_accessor.source_name)
                if ok == False:
                    if pp_generator.outcome_exists:
                        outcomes_exist_info.append(
                            data_vector_accessor.source_name)
                    continue

            message = parameters.validateParameters(self.params.check_level)
            if message:
                ErrorWindow(message=message)
                return
            count = pp_generator.segment_count(
                data_vector_accessor.data_vector)  # @IgnorePep8

            #add artificially 1% of the count to avoid the second show
            #of progress bar when in fact total number of segment count
            #is greater then total count calculated by segment_count method
            count = count + int(count * (1 / 100))

            #extends label text with source name (if not None)
            label_text = "{0} [{1}]".format(
                self.label_text, nvl(data_vector_accessor.source_name, ""))
            with progressManager.initialize(label_text=label_text,
                                            max_value=count) as progress:
                start_progress = self.__StartProgress__()
                if not self.params.progress_handler == None:
                    #give ability to pass custom progress handler
                    progress_handler = self.params.progress_handler
                elif self.params.save_csv == True:
                    progress_handler = self.__CSVProgressHandler__()
                else:
                    progress_handler = self.__ProgressHandler__()
                progress_handler.progress = progress
                if self.params.save_csv == True:
                    pp_generator.generate_CSV(
                        data_vector_accessor.data_vector,
                        data_vector_accessor.source_name,
                        start_progress=start_progress,
                        progress_handler=progress_handler)
                else:
                    pp_generator.generate(data_vector_accessor.data_vector,
                                          start_progress=start_progress,
                                          progress_handler=progress_handler)
                #store information about interrupt signal if it has happened
                self.__interrupted__ = progress_handler.interrupted

                if self.__interrupted__ == False and \
                    not self.params.formatted_summary_statistics == None:
                    self.params.formatted_summary_statistics.append(
                        pp_generator.formatted_summary_statistics)

                #if interrupted break the whole loop
                if self.__interrupted__:
                    return
        if len(outcomes_exist_info) > 0:
            message = "For the following files, outcomes already exist:"
            for outcome in outcomes_exist_info:
                message += ("\n" + outcome)
            InformationWindow(message=message)