docs: def ensure_tuple(length, tuples):
  	"""Yield `length`-sized tuples from the given collection.
  	
  	Will truncate longer tuples to the desired length, and pad using the leading element if shorter.
  	"""
  	
  	for elem in tuples:
  		# Handle non-tuples and non-lists as a single repeated element.
  		if not isinstance(elem, (tuple, list)):
  			yield (elem, ) * length
  			continue
  		
  		l = len(elem)
  		
  		# If we have the correct length already, yield it.
  		if l == length:
  			yield elem
  		
  		# If we're too long, truncate.
  		elif l > length:
  			yield tuple(elem[:length])
  		
  		# If we're too short, pad the *leading* element out.
  		elif l < length:
  			yield (elem[0], ) * (length - l) + tuple(elem)