Try to grab a budget data package schema from the resource.
        The schema only allows fields which are defined in the budget
        data package specification. If a field is found that is not in
        the specification this will return a NotABudgetDataPackageException
        and in that case we can just return and ignore the resource

def generate_budget_data_package(self, resource):
        """
        Try to grab a budget data package schema from the resource.
        The schema only allows fields which are defined in the budget
        data package specification. If a field is found that is not in
        the specification this will return a NotABudgetDataPackageException
        and in that case we can just return and ignore the resource
        """

        # Return if the budget data package fields have not been filled in
        if not self.are_budget_data_package_fields_filled_in(resource):
            return

        try:
            resource['schema'] = self.data.schema
        except exceptions.NotABudgetDataPackageException:
            log.debug('Resource is not a Budget Data Package')
            resource['schema'] = []
            return

        # If the schema fits, this can be exported as a budget data package
        # so we add the missing metadata fields to the resource.
        resource['BudgetDataPackage'] = True
        resource['standard'] = self.data.version
        resource['granularity'] = self.data.granularity
        resource['type'] = self.data.budget_type