<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_individual_object(self, obj_class, data, subset):
 """Return a JSSObject of type obj_class searched for by data. Args: obj_class: The JSSObject subclass type to search for. data: The data parameter performs different operations depending on the type passed. int: Retrieve an object with ID of <data>. str: Retrieve an object with name of <str>. For some objects, this may be overridden to include searching by other criteria. See those objects for more info. subset: A list of XML subelement tags to request (e.g. ['general', 'purchasing']), OR an '&' delimited string (e.g. 'general&purchasing'). This is not supported for all JSSObjects. Returns: JSSObject: Returns an object of type obj_class. (FUTURE) Will return None if nothing is found that match the search criteria. Raises: TypeError: if subset not formatted properly. JSSMethodNotAllowedError: if you try to perform an operation not supported by that object type. JSSGetError: If object searched for is not found. """

        if obj_class.can_get:
            url = obj_class.get_url(data)
            if subset:
                if not "general" in subset:
                    subset.append("general")
                url += "/subset/%s" % "&".join(subset)

            xmldata = self.jss.get(url)

            # Some name searches may result in multiple found
            # objects. e.g. A computer search for "MacBook Pro" may
            # return ALL computers which have not had their name
            # changed.
            if xmldata.find("size") is not None:
                return self._build_jss_object_list(xmldata, obj_class)
            else:
                return obj_class(self.jss, xmldata)
        else:
            raise JSSMethodNotAllowedError(obj_class.__class__.__name__)