def isbn10_checksum (isbn_str):
	"""
	Return the checksum over the coding (first 9 digits) of an ISBN-10.
	
	:Parameters:
		isbn_str : string
			An ISBN-10 without the trailing checksum digit.
			
	:Returns:
		The checksum character, ``0`` to ``9`` and ``X``.
		
	For example:
	
		>>> isbn10_checksum ("094001673")
		'7'
		>>> isbn10_checksum ("380557505")
		'X'
	
	This is identical to the SBN checksum.
	
	"""
	## Preconditions & preparation:
	assert (len (isbn_str) == 9), 'expecting a 9-digit string'
	## Main:
	csum = 0
	for i in range (len (isbn_str)):
		csum += (i+1) * int (isbn_str[i])
	cdigit = csum % 11
	if (cdigit == 10):
		cdigit = 'X'
	## Return:
	return str (cdigit)