<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(self, f, precache=None):
 """ Compile scss from file. File is string path of file object. """

        precache = precache or self.get_opt('cache') or False
        nodes = None
        if isinstance(f, file_):
            path = os.path.abspath(f.name)

        else:
            path = os.path.abspath(f)
            f = open(f)

        cache_path = os.path.splitext(path)[0] + '.ccss'

        if precache and os.path.exists(cache_path):
            ptime = os.path.getmtime(cache_path)
            ttime = os.path.getmtime(path)
            if ptime > ttime:
                dump = open(cache_path, 'rb').read()
                nodes = pickle.loads(dump)

        if not nodes:
            src = f.read()
            nodes = self.scan(src.strip())

        if precache:
            f = open(cache_path, 'wb')
            pickle.dump(nodes, f, protocol=1)

        self.parse(nodes)
        return ''.join(map(str, nodes))