<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_class(cls, identifier, default=None, select=None):
 """Load a single class specified by identifier. If `identifier` specifies more than a single class, and `select` is not None, then call `select` on the list of entry_points. Otherwise, choose the first one and log a warning. If `default` is provided, return it if no entry_point matching `identifier` is found. Otherwise, will raise a PluginMissingError If `select` is provided, it should be a callable of the form:: def select(identifier, all_entry_points):
 return an_entry_point The `all_entry_points` argument will be a list of all entry_points matching `identifier` that were found, and `select` should return one of those entry_points to be loaded. `select` should raise `PluginMissingError` if no plugin is found, or `AmbiguousPluginError` if too many plugins are found """

        identifier = identifier.lower()
        key = (cls.entry_point, identifier)
        if key not in PLUGIN_CACHE:

            if select is None:
                select = default_select

            all_entry_points = list(pkg_resources.iter_entry_points(cls.entry_point, name=identifier))
            for extra_identifier, extra_entry_point in cls.extra_entry_points:
                if identifier == extra_identifier:
                    all_entry_points.append(extra_entry_point)

            try:
                selected_entry_point = select(identifier, all_entry_points)
            except PluginMissingError:
                if default is not None:
                    return default
                raise

            PLUGIN_CACHE[key] = cls._load_class_entry_point(selected_entry_point)

        return PLUGIN_CACHE[key]