code: def before_update(self, context, current, 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
  
          if resource.get('upload', '') == '':
              # If it isn't an upload we check if it's the same url
              if current['url'] == resource['url']:
                  # Return if it's the same
                  return
              else:
                  self.data.load(resource['url'])
          else:
              self.data.load(resource['upload'].file)
  
          self.generate_budget_data_package(resource)
docs: If the resource has changed we try to generate a budget data
          package, but if it hasn't then we don't do anything