def load(self, source_path: str = None):
        """

        :return:
        """

        if self.persistent is not None:
            return self

        path = source_path if source_path else self._source_path
        if not os.path.exists(path):
            self._persistent = {}
            return self

        try:
            with open(path, 'r') as f:
                contents = f.read()
            if contents:
                self._persistent = json.loads(contents)
        except json_decoder.JSONDecodeError as err:
            if self._persistent == self.NO_VALUE:
                return self

            self._persistent = self.NO_VALUE
            log(
                """
                [ERROR]: Failed to decode json file
                  PATH: {path}
                  INFO: {msg}
                    LINE: {line}
                    CHAR: {char}
                """.format(
                    path=path,
                    msg=err.msg,
                    line=err.lineno,
                    char=err.colno
                )
            )
        return self
def load ( self , source_path : str = None ) : if self . persistent is not None : return self path = source_path if source_path else self . _source_path if not os . path . exists ( path ) : self . _persistent = { } return self try : with open ( path , 'r' ) as f : contents = f . read ( ) if contents : self . _persistent = json . loads ( contents ) except json_decoder . JSONDecodeError as err : if self . _persistent == self . NO_VALUE : return self self . _persistent = self . NO_VALUE log ( """
                [ERROR]: Failed to decode json file
                  PATH: {path}
                  INFO: {msg}
                    LINE: {line}
                    CHAR: {char}
                """ . format ( path = path , msg = err . msg , line = err . lineno , char = err . colno ) ) return self
:return: