def save_checkpoint(self, portfolio_id=None, **config):
        """save_checkpoint method will save checkpoint for no data available."""
        new_from_date = ""
        try:
            chk_point_name = self.__company.domain
            from_date = config.get("from_date")
            todays_date = str(datetime.datetime.now().date())
            new_from_date = "%s|%s" % (from_date, todays_date)
            check_point_data_all_companies = self.state_manager_object.get()
            check_point_data_all_companies = json.loads(check_point_data_all_companies)
            if portfolio_id is None:
                check_point_data_all_companies[chk_point_name] = new_from_date
            else:
                check_point_data_all_companies[portfolio_id]["companies"][
                    chk_point_name
                ] = new_from_date
            self.state_manager_object.post(json.dumps(check_point_data_all_companies))
            logging.info(
                "SecurityScorecard Connector: checkpoint {} is saved of {} company when data is not available.".format(
                    chk_point_name, new_from_date
                )
            )
        except SSIssueException as err:
            logging.warn("SecurityScorecard Connector: error in checkpoint creation : {}".format(err))
            return
save_checkpoint method will save checkpoint for no data available.
Solutions/SecurityScorecard Cybersecurity Ratings/Data Connectors/SecurityScorecardIssue/SecurityScorecardIssueSentinelConnector/writers.py