def get_validated_attribute_type_info(typ, item_type, attr_name):
if (typ is None) or (typ is Parameter.empty):<EOL><INDENT>raise TypeInformationRequiredError.create_for_object_attributes(item_type, attr_name, typ)<EOL><DEDENT>typ = resolve_forward_ref(typ)<EOL>if not is_valid_pep484_type_hint(typ):<EOL><INDENT>raise InvalidPEP484TypeHint.create_for_object_attributes(item_type, attr_name, typ)<EOL><DEDENT>return typ<EOL>
Routine to validate that typ is a valid non-empty PEP484 type hint. If it is a forward reference, it will be 
resolved 

:param typ: 
:param item_type: 
:param attr_name: 
:return: