Actually I think we want both here. if id_or_username is None, our cast via `int()` will throw `TypeError` and we'll return None as expected.

If we want to leave that check to all calling functions, that's fine too - but it might be better to handle it here, by catching both exceptions.