code: def _validate_chain_strength(sampler, chain_strength):
      
      properties = sampler.properties
  
      if 'extended_j_range' in properties:
          max_chain_strength = - min(properties['extended_j_range'])
      elif 'j_range' in properties:
          max_chain_strength = - min(properties['j_range'])
      else:
          raise ValueError("input sampler should have 'j_range' and/or 'extended_j_range' property.")
  
      if chain_strength is None:
          chain_strength = max_chain_strength
      elif chain_strength > max_chain_strength:
          raise ValueError("Provided chain strength exceedds the allowed range.")
  
      return chain_strength
docs: Validate the provided chain strength, checking J-ranges of the sampler's children.
  
      Args:
          chain_strength (float) The provided chain strength.  Use None to use J-range.
  
      Returns (float):
          A valid chain strength, either provided or based on available J-range.  Positive finite float.