<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def delete_objective_bank(self, objective_bank_id=None):
 """Deletes an ObjectiveBank. arg: objectiveBankId (osid.id.Id):
 the Id of the ObjectiveBank to remove raise: NotFound - objectiveBankId not found raise: NullArgument - objectiveBankId is null raise: OperationFailed - unable to complete request raise: PermissionDenied - authorization failure compliance: mandatory - This method must be implemented. """

        from dlkit.abstract_osid.id.primitives import Id as ABCId
        if objective_bank_id is None:
            raise NullArgument()
        if not isinstance(objective_bank_id, ABCId):
            raise InvalidArgument('argument type is not an osid Id')

        # Check for "sandbox" genus type.  Hardcoded for now:
        try:
            objective_bank = ObjectiveBankLookupSession(proxy=self._proxy,
                                                        runtime=self._runtime).get_objective_bank(objective_bank_id)
        except Exception:
            raise
        # if objective_bank._my_map['genusTypeId'] != 'mc3-objectivebank%3Amc3.learning.objectivebank.sandbox%40MIT-OEIT':
        #     raise PermissionDenied('Handcar only supports deleting \'sandbox\' type ObjectiveBanks')

        url_path = construct_url('objective_banks',
                                 bank_id=objective_bank_id)
        result = self._delete_request(url_path)
        return objects.ObjectiveBank(result)