'Returns an XModuleDescriptor instance for the item at location.
If any segment of the location is None except revision, raises
xmodule.modulestore.exceptions.InsufficientSpecificationError
If no object is found at that location, raises
xmodule.modulestore.exceptions.ItemNotFoundError
Arguments:
usage_key: a :class:`.UsageKey` instance
depth (int): An argument that some module stores may use to prefetch
descendents of the queried modules for more efficient results later
in the request. The depth is counted in the number of
calls to get_children() to cache. None indicates to cache all descendents.
using_descriptor_system (CachingDescriptorSystem): The existing CachingDescriptorSystem
to add data to, and to load the XBlocks from.'

def get_item(self, usage_key, depth=0, using_descriptor_system=None, for_parent=None, **kwargs):

    item = self._find_one(usage_key)
    module = self._load_items(usage_key.course_key, [item], depth, using_descriptor_system=using_descriptor_system, for_parent=for_parent)[0]
    return module
