Load the class at `path` and return it.

        Load will attempt to load the file at `path` and `path` + .class
        before failing.

        :param path: Fully-qualified path to a ClassFile.

def load(self, path: str) -> ClassFile:
        """Load the class at `path` and return it.

        Load will attempt to load the file at `path` and `path` + .class
        before failing.

        :param path: Fully-qualified path to a ClassFile.
        """
        # Try to refresh the class from the cache, loading it from disk
        # if not found.
        try:
            r = self.class_cache.pop(path)
        except KeyError:
            with self.open(f'{path}.class') as source:
                r = self.klass(source)

        r.classloader = self
        # Even if it was found re-set the key to update the OrderedDict
        # ordering.
        self.class_cache[path] = r

        # If the cache is enabled remove every item over N started from
        # the least-used.
        if self.max_cache > 0:
            to_pop = max(len(self.class_cache) - self.max_cache, 0)
            for _ in repeat(None, to_pop):
                self.class_cache.popitem(last=False)

        return r