def check_values(self):
        """
        This function checks if there is no problem about values given.
        If there is a problem with a or some values, their label's color is changed to red,
        and call a function to display an error message.
        If there is no problem, their label, if it is necessary, is changed to grey (default color).
        """

        error_color = 'color: red'
        no_error_color = 'color: 0.75'  # light gray
        self.error_batch_name = False
        self.error_report_parameter = False
        self.error_saa_result = False
        self.error_sza_result = False
        self.error_p_result = False
        self.error_wavelength_result = False
        self.error_x_result = False
        self.error_y_result = False
        self.error_g_result = False
        self.error_s_result = False
        self.error_z_result = False
        self.error_verbose_result = False
        self.error_phytoplankton_path_result = False
        self.error_bottom_path_result = False
        self.error_executive_path_result = False

        """
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        No particular checking for paths!
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        """

        if self.ui.tabWidget.currentIndex() == TabWidget.NORMAL_MODE:

            check_num = '(.*)'  # Regular expression to use
            self.prog = re.compile(check_num)  # Analysis object creation
            batch_name_result = self.prog.search(
                self.batch_name_value)  # String retrieval thanks to the regular expression
            report_parameter_result = self.prog.search(self.report_parameter_value)
            try:
                if (self.ui.batch_name_value.text().isEmpty()) | (
                            batch_name_result.group() != self.ui.batch_name_value.text()):
                    self.ui.batch_name_label.setStyleSheet(error_color)
                    self.error_batch_name = True
                else:
                    self.ui.batch_name_label.setStyleSheet(no_error_color)
                    self.error_batch_name = False
            except AttributeError:
                self.ui.batch_name_label.setStyleSheet(error_color)
                self.error_batch_name = True
            try:
                if (self.ui.report_parameter_value.text().isEmpty()) | (
                            report_parameter_result.group() != self.ui.report_parameter_value.text()):
                    self.ui.report_parameter_label.setStyleSheet(error_color)
                    self.error_report_parameter = True
                else:
                    self.ui.report_parameter_label.setStyleSheet(no_error_color)
                    self.error_report_parameter = False
            except AttributeError:
                self.ui.report_parameter_label.setStyleSheet(error_color)
                self.error_report_parameter = True

            # -----------------------------------------------------------#
            # The following checks values separate by comas without space.
            # -----------------------------------------------------------#

            """
            Problem : The user can write just one letter or starts with a dot or finishes the list with a dot.
            """

            # check_num_1 = '(^([0-9]+[.]?[0-9]*[,]?){0,}[^,])|(^([0-9]*[,]){1,}[^,])'  # Regular expression to use
            # self.prog_1 = re.compile(check_num_1)  # Analysis object creation
            # self.wavelength_values = str(self.wavelength_values).translate(None, ' ').strip(' ')
            # # print(self.wavelength_values)
            # p_result = self.prog_1.search(self.p_values)  # String retrieval thanks to the regular expression
            # saa_result = self.prog_1.search(self.saa_values)
            # sza_result = self.prog_1.search(self.sza_values)
            # wavelength_result = self.prog_1.search(self.wavelength_values)
            # # print(wavelength_result.group())
            #
            # try:
            #
            #     if saa_result.group() != self.ui.saa_values.text():
            #         self.ui.saa_label.setStyleSheet(error_color)
            #         self.error_sza_result = True
            #     else:
            #         self.ui.saa_label.setStyleSheet(no_error_color)
            #         self.error_sza_result = False
            # except AttributeError:
            #     self.ui.saa_label.setStyleSheet(error_color)
            #     self.error_sza_result = True
            # try:
            #     if sza_result.group() != self.ui.sza_values.text():
            #         self.ui.sza_label.setStyleSheet(error_color)
            #         self.error_saa_result = True
            #     else:
            #         self.ui.sza_label.setStyleSheet(no_error_color)
            #         self.error_saa_result = False
            # except AttributeError:
            #     self.ui.sza_label.setStyleSheet(error_color)
            #     self.error_saa_result = True
            # try:
            #     if p_result.group() != self.ui.p_values.text():
            #         self.ui.p_label.setStyleSheet(error_color)
            #         self.error_p_result = True
            #     else:
            #         self.ui.p_label.setStyleSheet(no_error_color)
            #         self.error_p_result = False
            # except AttributeError:
            #     self.ui.p_label.setStyleSheet(error_color)
            #     self.error_p_result = True
            # try:
            #     if wavelength_result.group() != str(self.ui.wavelength_values.text()).translate(None, ' ').strip(' '):
            #         self.ui.waveL_label.setStyleSheet(error_color)
            #         self.error_wavelength_result = True
            #     else:
            #         self.ui.waveL_label.setStyleSheet(no_error_color)
            #         self.error_wavelength_result = False
            # except AttributeError:
            #     self.ui.waveL_label.setStyleSheet(error_color)
            #     self.error_wavelength_result = True

            # ---------------------------------------------------#
            # The following checks values containing only numbers.
            # ---------------------------------------------------#
            check_num_2 = '(^([0-9]+[.]?[0-9]*[,]?){0,}[^,])|(^([0-9]+[,]){1,}[^,])'
            self.prog_2 = re.compile(check_num_2)
            x_result = self.prog_2.search(self.x_value)
            y_result = self.prog_2.search(self.y_value)
            g_result = self.prog_2.search(self.g_value)
            s_result = self.prog_2.search(self.s_value)
            z_result = self.prog_2.search(self.z_value)

            try:
                if x_result.group() != self.ui.x_value.text():
                    self.ui.particles_label.setStyleSheet(error_color)
                    self.ui.x_label.setStyleSheet(error_color)
                    self.error_x_result = True
                else:
                    self.ui.particles_label.setStyleSheet(no_error_color)
                    self.ui.x_label.setStyleSheet(no_error_color)
                    self.error_x_result = False
            except AttributeError:
                self.ui.particles_label.setStyleSheet(no_error_color)
                self.ui.x_label.setStyleSheet(error_color)
                self.error_x_result = True
            try:
                if y_result.group() != self.ui.y_value.text():
                    self.ui.particles_label.setStyleSheet(error_color)
                    self.ui.y_label.setStyleSheet(error_color)
                    self.error_y_result = True
                else:
                    self.ui.particles_label.setStyleSheet(no_error_color)
                    self.ui.y_label.setStyleSheet(no_error_color)
                    self.error_y_result = False
            except AttributeError:
                self.ui.particles_label.setStyleSheet(error_color)
                self.ui.y_label.setStyleSheet(error_color)
                self.error_y_result = True
            try:
                if g_result.group() != self.ui.g_value.text():
                    self.ui.organic_label.setStyleSheet(error_color)
                    self.ui.g_label.setStyleSheet(error_color)
                    self.error_g_result = True
                else:
                    self.ui.organic_label.setStyleSheet(no_error_color)
                    self.ui.g_label.setStyleSheet(no_error_color)
                    self.error_g_result = False
            except AttributeError:
                self.ui.organic_label.setStyleSheet(error_color)
                self.ui.g_label.setStyleSheet(error_color)
                self.error_g_result = True
            try:
                if s_result.group() != self.ui.s_value.text():
                    self.ui.organic_label.setStyleSheet(error_color)
                    self.ui.s_label.setStyleSheet(error_color)
                    self.error_s_result = True
                else:
                    self.ui.organic_label.setStyleSheet(no_error_color)
                    self.ui.s_label.setStyleSheet(no_error_color)
                    self.error_x_result = False
            except AttributeError:
                self.ui.organic_label.setStyleSheet(error_color)
                self.ui.s_label.setStyleSheet(error_color)
                self.error_x_result = True
            try:
                if z_result.group() != self.ui.z_value.text():
                    self.ui.z_label.setStyleSheet(error_color)
                    self.error_z_result = True
                else:
                    self.ui.z_label.setStyleSheet(no_error_color)
                    self.error_z_result = False
            except AttributeError:
                self.ui.z_label.setStyleSheet(error_color)
                self.error_z_result = True

            check_num_3 = '[1-6]+'
            self.prog_3 = re.compile(check_num_3)
            verbose_result = self.prog_3.search(self.verbose_value)

            try:
                if verbose_result.group() != self.ui.verbose_value.text():
                    self.ui.verbose_label.setStyleSheet(error_color)
                    self.error_verbose_result = True
                else:
                    self.ui.verbose_label.setStyleSheet(no_error_color)
                    self.error_verbose_result = False
            except AttributeError:
                self.ui.verbose_label.setStyleSheet(error_color)
                self.error_verbose_result = True

            # ------------------------------------------------#
            # The following checks values containing only path.
            # ------------------------------------------------#

            """
            #!!!!!!!!!!!!!!!!!!!!!!!!!!
            #Syntax test doesn't work ! ->  #check_num4 = '[/]([A-Za-z]+[/]?)+[A-Za-z]$'
            #!!!!!!!!!!!!!!!!!!!!!!!!!!
            """

            check_num_4 = '(.*)'  # Take all strings possible.
            self.prog_4 = re.compile(check_num_4)
            phytoplankton_path_result = self.prog_4.search(self.phytoplankton_path)
            bottom_path_result = self.prog_4.search(self.bottom_path)
            executive_path_result = self.prog_4.search(self.executive_path)

            try:
                if phytoplankton_path_result.group() != self.ui.phyto_path.text():
                    self.ui.phyto_label.setStyleSheet(error_color)
                    self.error_phytoplankton_path_result = True
                else:
                    self.ui.phyto_label.setStyleSheet(no_error_color)
                    self.error_phytoplankton_path_result = False
            except AttributeError:
                self.ui.phyto_label.setStyleSheet(error_color)
                self.error_phytoplankton_path_result = True
            try:
                if bottom_path_result.group() != self.ui.bottom_path.text():
                    self.ui.bottom_label.setStyleSheet(error_color)
                    self.error_bottom_path_result = True
                else:
                    self.ui.bottom_label.setStyleSheet(no_error_color)
                    self.error_bottom_path_result = False
            except AttributeError:
                self.ui.bottom_label.setStyleSheet(error_color)
                self.error_bottom_path_result = True
            try:
                if executive_path_result.group() != self.ui.exec_path.text():
                    self.ui.execPath_label.setStyleSheet(error_color)
                    self.error_executive_path_result = True
                else:
                    self.ui.execPath_label.setStyleSheet(no_error_color)
                    self.error_executive_path_result = False
            except AttributeError:
                self.ui.execPath_label.setStyleSheet(error_color)
                self.error_executive_path_result = True

        if (self.error_batch_name == True) | (self.error_report_parameter == True) | (
                    self.error_saa_result == True) | (self.error_sza_result == True) | (
                    self.error_p_result == True) | (self.error_wavelength_result == True) | (
                    self.error_x_result == True) | (self.error_y_result == True) | (
                    self.error_g_result == True) | (self.error_s_result == True) | (
                    self.error_z_result == True) | (self.error_verbose_result == True) | (
                    self.error_phytoplankton_path_result == True) | (self.error_bottom_path_result == True) | (
                    self.error_executive_path_result == True):
            self.without_error = False
        else:
            self.without_error = True
def check_values ( self ) : error_color = 'color: red' no_error_color = 'color: 0.75' self . error_batch_name = False self . error_report_parameter = False self . error_saa_result = False self . error_sza_result = False self . error_p_result = False self . error_wavelength_result = False self . error_x_result = False self . error_y_result = False self . error_g_result = False self . error_s_result = False self . error_z_result = False self . error_verbose_result = False self . error_phytoplankton_path_result = False self . error_bottom_path_result = False self . error_executive_path_result = False """
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        No particular checking for paths!
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        """ if self . ui . tabWidget . currentIndex ( ) == TabWidget . NORMAL_MODE : check_num = '(.*)' self . prog = re . compile ( check_num ) batch_name_result = self . prog . search ( self . batch_name_value ) report_parameter_result = self . prog . search ( self . report_parameter_value ) try : if ( self . ui . batch_name_value . text ( ) . isEmpty ( ) ) | ( batch_name_result . group ( ) != self . ui . batch_name_value . text ( ) ) : self . ui . batch_name_label . setStyleSheet ( error_color ) self . error_batch_name = True else : self . ui . batch_name_label . setStyleSheet ( no_error_color ) self . error_batch_name = False except AttributeError : self . ui . batch_name_label . setStyleSheet ( error_color ) self . error_batch_name = True try : if ( self . ui . report_parameter_value . text ( ) . isEmpty ( ) ) | ( report_parameter_result . group ( ) != self . ui . report_parameter_value . text ( ) ) : self . ui . report_parameter_label . setStyleSheet ( error_color ) self . error_report_parameter = True else : self . ui . report_parameter_label . setStyleSheet ( no_error_color ) self . error_report_parameter = False except AttributeError : self . ui . report_parameter_label . setStyleSheet ( error_color ) self . error_report_parameter = True """
            Problem : The user can write just one letter or starts with a dot or finishes the list with a dot.
            """ check_num_2 = '(^([0-9]+[.]?[0-9]*[,]?){0,}[^,])|(^([0-9]+[,]){1,}[^,])' self . prog_2 = re . compile ( check_num_2 ) x_result = self . prog_2 . search ( self . x_value ) y_result = self . prog_2 . search ( self . y_value ) g_result = self . prog_2 . search ( self . g_value ) s_result = self . prog_2 . search ( self . s_value ) z_result = self . prog_2 . search ( self . z_value ) try : if x_result . group ( ) != self . ui . x_value . text ( ) : self . ui . particles_label . setStyleSheet ( error_color ) self . ui . x_label . setStyleSheet ( error_color ) self . error_x_result = True else : self . ui . particles_label . setStyleSheet ( no_error_color ) self . ui . x_label . setStyleSheet ( no_error_color ) self . error_x_result = False except AttributeError : self . ui . particles_label . setStyleSheet ( no_error_color ) self . ui . x_label . setStyleSheet ( error_color ) self . error_x_result = True try : if y_result . group ( ) != self . ui . y_value . text ( ) : self . ui . particles_label . setStyleSheet ( error_color ) self . ui . y_label . setStyleSheet ( error_color ) self . error_y_result = True else : self . ui . particles_label . setStyleSheet ( no_error_color ) self . ui . y_label . setStyleSheet ( no_error_color ) self . error_y_result = False except AttributeError : self . ui . particles_label . setStyleSheet ( error_color ) self . ui . y_label . setStyleSheet ( error_color ) self . error_y_result = True try : if g_result . group ( ) != self . ui . g_value . text ( ) : self . ui . organic_label . setStyleSheet ( error_color ) self . ui . g_label . setStyleSheet ( error_color ) self . error_g_result = True else : self . ui . organic_label . setStyleSheet ( no_error_color ) self . ui . g_label . setStyleSheet ( no_error_color ) self . error_g_result = False except AttributeError : self . ui . organic_label . setStyleSheet ( error_color ) self . ui . g_label . setStyleSheet ( error_color ) self . error_g_result = True try : if s_result . group ( ) != self . ui . s_value . text ( ) : self . ui . organic_label . setStyleSheet ( error_color ) self . ui . s_label . setStyleSheet ( error_color ) self . error_s_result = True else : self . ui . organic_label . setStyleSheet ( no_error_color ) self . ui . s_label . setStyleSheet ( no_error_color ) self . error_x_result = False except AttributeError : self . ui . organic_label . setStyleSheet ( error_color ) self . ui . s_label . setStyleSheet ( error_color ) self . error_x_result = True try : if z_result . group ( ) != self . ui . z_value . text ( ) : self . ui . z_label . setStyleSheet ( error_color ) self . error_z_result = True else : self . ui . z_label . setStyleSheet ( no_error_color ) self . error_z_result = False except AttributeError : self . ui . z_label . setStyleSheet ( error_color ) self . error_z_result = True check_num_3 = '[1-6]+' self . prog_3 = re . compile ( check_num_3 ) verbose_result = self . prog_3 . search ( self . verbose_value ) try : if verbose_result . group ( ) != self . ui . verbose_value . text ( ) : self . ui . verbose_label . setStyleSheet ( error_color ) self . error_verbose_result = True else : self . ui . verbose_label . setStyleSheet ( no_error_color ) self . error_verbose_result = False except AttributeError : self . ui . verbose_label . setStyleSheet ( error_color ) self . error_verbose_result = True """
            #!!!!!!!!!!!!!!!!!!!!!!!!!!
            #Syntax test doesn't work ! ->  #check_num4 = '[/]([A-Za-z]+[/]?)+[A-Za-z]$'
            #!!!!!!!!!!!!!!!!!!!!!!!!!!
            """ check_num_4 = '(.*)' self . prog_4 = re . compile ( check_num_4 ) phytoplankton_path_result = self . prog_4 . search ( self . phytoplankton_path ) bottom_path_result = self . prog_4 . search ( self . bottom_path ) executive_path_result = self . prog_4 . search ( self . executive_path ) try : if phytoplankton_path_result . group ( ) != self . ui . phyto_path . text ( ) : self . ui . phyto_label . setStyleSheet ( error_color ) self . error_phytoplankton_path_result = True else : self . ui . phyto_label . setStyleSheet ( no_error_color ) self . error_phytoplankton_path_result = False except AttributeError : self . ui . phyto_label . setStyleSheet ( error_color ) self . error_phytoplankton_path_result = True try : if bottom_path_result . group ( ) != self . ui . bottom_path . text ( ) : self . ui . bottom_label . setStyleSheet ( error_color ) self . error_bottom_path_result = True else : self . ui . bottom_label . setStyleSheet ( no_error_color ) self . error_bottom_path_result = False except AttributeError : self . ui . bottom_label . setStyleSheet ( error_color ) self . error_bottom_path_result = True try : if executive_path_result . group ( ) != self . ui . exec_path . text ( ) : self . ui . execPath_label . setStyleSheet ( error_color ) self . error_executive_path_result = True else : self . ui . execPath_label . setStyleSheet ( no_error_color ) self . error_executive_path_result = False except AttributeError : self . ui . execPath_label . setStyleSheet ( error_color ) self . error_executive_path_result = True if ( self . error_batch_name == True ) | ( self . error_report_parameter == True ) | ( self . error_saa_result == True ) | ( self . error_sza_result == True ) | ( self . error_p_result == True ) | ( self . error_wavelength_result == True ) | ( self . error_x_result == True ) | ( self . error_y_result == True ) | ( self . error_g_result == True ) | ( self . error_s_result == True ) | ( self . error_z_result == True ) | ( self . error_verbose_result == True ) | ( self . error_phytoplankton_path_result == True ) | ( self . error_bottom_path_result == True ) | ( self . error_executive_path_result == True ) : self . without_error = False else : self . without_error = True
This function checks if there is no problem about values given.
        If there is a problem with a or some values, their label's color is changed to red,
        and call a function to display an error message.
        If there is no problem, their label, if it is necessary, is changed to grey (default color).