<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_plugin(self, plugin):
 """ Check if the section is in the proper format vcf format. Args: vcf_section (dict):
 The information from a vcf section Returns: True is it is in the proper format """

        
        vcf_section = self[plugin]
        
        try:
            vcf_field = vcf_section['field']
            if not  vcf_field in self.vcf_columns:
                raise ValidateError(
                        "field has to be in {0}\n"
                        "Wrong field name in plugin: {1}".format(
                        self.vcf_columns, plugin
                    ))
            if vcf_field == 'INFO':
                try:
                    info_key = vcf_section['info_key']

                    if info_key == 'CSQ':
                        try:
                            csq_key = vcf_section['csq_key']
                        except KeyError:
                            raise ValidateError(
                        "CSQ entrys has to refer to an csq field.\n"
                        "Refer with keyword 'csq_key'\n"
                        "csq_key is missing in section: {0}".format(
                            plugin
                            )
                        )


                except KeyError:
                    raise ValidateError(
                        "INFO entrys has to refer to an INFO field.\n"
                        "Refer with keyword 'info_key'\n"
                        "info_key is missing in section: {0}".format(
                            plugin
                            )
                        )
        except KeyError:
            raise ValidateError(
                "Vcf entrys have to refer to a field in the VCF with keyword"
                " 'field'.\nMissing keyword 'field' in plugin: {0}".format(
                  plugin
                ))

        try:
            data_type = vcf_section['data_type']
            if not data_type in self.data_types:
                raise ValidateError(
                    "data_type has to be in {0}\n"
                    "Wrong data_type in plugin: {1}".format(
                        self.data_types, plugin)
                    )
        except KeyError:
            raise ValidateError(
                "Vcf entrys have to refer to a data type in the VCF with "
                "keyword 'data_type'.\n"
                "Missing data_type in plugin: {0}".format(plugin)
                )

        
        separators = vcf_section.get('separators', None)
        if separators:
            if len(separators) == 1:
                self[plugin]['separators'] = list(separators)
        else:
            if data_type != 'flag':
                raise ValidateError(
                    "If data_type != flag the separators have to be defined"
                    "Missing separators in plugin: {0}".format(plugin)
                    )
                
        
        record_rule = vcf_section.get('record_rule', None)
        
        if record_rule:
            if not record_rule in ['min', 'max']:
                raise ValidateError(
                    "Record rules have to be in {0}\n"
                    "Wrong record_rule in plugin: {1}".format(
                        ['min', 'max'], plugin)
                )
        else:
            self.logger.info("Setting record rule to default: 'max'")
                
        return True