<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sitecol(self):
 """ Read the site collection from .filename and cache it """

        if 'sitecol' in vars(self):
            return self.__dict__['sitecol']
        if self.filename is None or not os.path.exists(self.filename):
            # case of nofilter/None sitecol
            return
        with hdf5.File(self.filename, 'r') as h5:
            self.__dict__['sitecol'] = sc = h5.get('sitecol')
        return sc