parameters: (self)
return_statement: return explicit_sig
docstring: Used by :py:meth:`waflib.Task.Task.signature`, hash :py:attr:`waflib.Task.Task.inputs`
  		and :py:attr:`waflib.Task.Task.dep_nodes` signatures.
  
  		:rtype: hash value
docstring_summary: Used by :py:meth:`waflib.Task.Task.signature`, hash :py:attr:`waflib.Task.Task.inputs`
  		and :py:attr:`waflib.Task.Task.dep_nodes` signatures.
docstring_tokens: Used by : py : meth : waflib . Task . Task . signature hash : py : attr : waflib . Task . Task . inputs and : py : attr : waflib . Task . Task . dep_nodes signatures .
function: def sig_explicit_deps(self):
  		"""
  		Used by :py:meth:`waflib.Task.Task.signature`, hash :py:attr:`waflib.Task.Task.inputs`
  		and :py:attr:`waflib.Task.Task.dep_nodes` signatures.
  
  		:rtype: hash value
  		"""
  		bld = self.generator.bld
  		bld_sigs = []
  		exp_output = ''
  
  		# the inputs
  		for x in self.inputs + self.dep_nodes:
  			try:
  				bld_sig = x.get_bld_sig()
  				if Logs.sig_delta:
  					exp_output += '{} {} {}\n'.format(x.name, x.abspath(), hexlify(bld_sig))
  				bld_sigs.append(bld_sig)
  			except (AttributeError, TypeError, IOError):
  				Logs.warn('Missing signature for node %r (required by %r)' % (x, self))
  				continue	# skip adding the signature to the calculation, but continue adding other dependencies
  
  		# manual dependencies, they can slow down the builds
  		if bld.deps_man:
  			additional_deps = bld.deps_man
  			for x in self.inputs + self.outputs:
  				try:
  					d = additional_deps[id(x)]
  				except KeyError:
  					continue
  
  				for v in d:
  					v_name = v.name
  					if isinstance(v, bld.root.__class__):
  						try:
  							v = v.get_bld_sig()
  						except AttributeError:
  							raise Errors.WafError('Missing node signature for %r (required by %r)' % (v, self))
  					elif hasattr(v, '__call__'):
  						v = v() # dependency is a function, call it
  					if Logs.sig_delta:
  						exp_output += '{} {}\n'.format(v_name, hexlify(v))
  					bld_sigs.append(v)
  
  		dep_bld_sigs_str = b"".join(bld_sigs)
  
  		m = Utils.md5()
  		m.update(dep_bld_sigs_str)
  		explicit_sig = m.digest()
  
  		if Logs.sig_delta:
  			key = self.uid()
  			prev_sig = bld.task_sigs.get((key, 'exp'), [])
  			if prev_sig and prev_sig != explicit_sig:
  				self.capture_signature_log('\nExplicit(Old):\n')
  				self.capture_signature_log(bld.last_build['exp_deps'].get(key,''))
  				self.capture_signature_log('\nExplicit(New):\n')
  				self.capture_signature_log(exp_output)
  			bld.last_build['exp_deps'][key] = exp_output
  			bld.task_sigs[(key, 'exp')] = explicit_sig
  
  		return explicit_sig
function_tokens: def sig_explicit_deps ( self ) : bld = self . generator . bld bld_sigs = [ ] exp_output = '' # the inputs for x in self . inputs + self . dep_nodes : try : bld_sig = x . get_bld_sig ( ) if Logs . sig_delta : exp_output += '{} {} {}\n' . format ( x . name , x . abspath ( ) , hexlify ( bld_sig ) ) bld_sigs . append ( bld_sig ) except ( AttributeError , TypeError , IOError ) : Logs . warn ( 'Missing signature for node %r (required by %r)' % ( x , self ) ) continue # skip adding the signature to the calculation, but continue adding other dependencies # manual dependencies, they can slow down the builds if bld . deps_man : additional_deps = bld . deps_man for x in self . inputs + self . outputs : try : d = additional_deps [ id ( x ) ] except KeyError : continue for v in d : v_name = v . name if isinstance ( v , bld . root . __class__ ) : try : v = v . get_bld_sig ( ) except AttributeError : raise Errors . WafError ( 'Missing node signature for %r (required by %r)' % ( v , self ) ) elif hasattr ( v , '__call__' ) : v = v ( ) # dependency is a function, call it if Logs . sig_delta : exp_output += '{} {}\n' . format ( v_name , hexlify ( v ) ) bld_sigs . append ( v ) dep_bld_sigs_str = b"" . join ( bld_sigs ) m = Utils . md5 ( ) m . update ( dep_bld_sigs_str ) explicit_sig = m . digest ( ) if Logs . sig_delta : key = self . uid ( ) prev_sig = bld . task_sigs . get ( ( key , 'exp' ) , [ ] ) if prev_sig and prev_sig != explicit_sig : self . capture_signature_log ( '\nExplicit(Old):\n' ) self . capture_signature_log ( bld . last_build [ 'exp_deps' ] . get ( key , '' ) ) self . capture_signature_log ( '\nExplicit(New):\n' ) self . capture_signature_log ( exp_output ) bld . last_build [ 'exp_deps' ] [ key ] = exp_output bld . task_sigs [ ( key , 'exp' ) ] = explicit_sig return explicit_sig