def set_pipeline_attributes(<EOL>self, pipeline_interface, pipeline_name, permissive=True):
<EOL>req_attr_names = [("<STR_LIT>", "<STR_LIT>"),<EOL>("<STR_LIT>", REQUIRED_INPUTS_ATTR_NAME),<EOL>("<STR_LIT>", ALL_INPUTS_ATTR_NAME)]<EOL>for name_src_attr, name_dst_attr in req_attr_names:<EOL><INDENT>_LOGGER.log(<NUM_LIT:5>, "<STR_LIT>",<EOL>name_src_attr, name_dst_attr)<EOL>value = pipeline_interface.get_attribute(<EOL>pipeline_name, name_src_attr)<EOL>_LOGGER.log(<NUM_LIT:5>, "<STR_LIT>".format(name_dst_attr, value))<EOL>setattr(self, name_dst_attr, value)<EOL><DEDENT>if not getattr(self, ALL_INPUTS_ATTR_NAME):<EOL><INDENT>required_inputs = getattr(self, REQUIRED_INPUTS_ATTR_NAME)<EOL>setattr(self, ALL_INPUTS_ATTR_NAME, required_inputs)<EOL><DEDENT>if self.ngs_inputs_attr:<EOL><INDENT>_LOGGER.log(<NUM_LIT:5>, "<STR_LIT>", self.name)<EOL>self.ngs_inputs = self.get_attr_values("<STR_LIT>")<EOL>set_rtype_reason = "<STR_LIT>"<EOL>if not hasattr(self, "<STR_LIT>"):<EOL><INDENT>set_rtype_reason = "<STR_LIT>"<EOL><DEDENT>elif not self.read_type or self.read_type.lower()not in VALID_READ_TYPES:<EOL><INDENT>set_rtype_reason = "<STR_LIT>".format(self.read_type)<EOL><DEDENT>if set_rtype_reason:<EOL><INDENT>_LOGGER.debug(<EOL>"<STR_LIT>",<EOL>self.__class__.__name__, self.name, set_rtype_reason)<EOL>self.set_read_type(permissive=permissive)<EOL><DEDENT>else:<EOL><INDENT>_LOGGER.debug("<STR_LIT>",<EOL>self.read_type)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>_LOGGER.log(<NUM_LIT:5>, "<STR_LIT>", self.name)<EOL><DEDENT>self.required_inputs = self.get_attr_values(REQUIRED_INPUTS_ATTR_NAME)<EOL>self.all_inputs = self.get_attr_values(ALL_INPUTS_ATTR_NAME)<EOL>_LOGGER.debug("<STR_LIT>".format(self.name, self.all_inputs))<EOL>self.input_file_size = get_file_size(self.all_inputs)<EOL>
Set pipeline-specific sample attributes.

Some sample attributes are relative to a particular pipeline run,
like which files should be considered inputs, what is the total
input file size for the sample, etc. This function sets these
pipeline-specific sample attributes, provided via a PipelineInterface
object and the name of a pipeline to select from that interface.

:param PipelineInterface pipeline_interface: A PipelineInterface
    object that has the settings for this given pipeline.
:param str pipeline_name: Which pipeline to choose.
:param bool permissive: whether to simply log a warning or error 
    message rather than raising an exception if sample file is not 
    found or otherwise cannot be read, default True