<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def from_file(cls, fp, storage=None):
 """Load from file. Parameters fp : `str` or `file` File or path. storage : `type`, optional Storage class (default: cls.DEFAULT_STORAGE) Returns ------- `markovchain.Markov` """

        if storage is None:
            storage = cls.DEFAULT_STORAGE
        return cls.from_storage(storage.load(fp))