code: def compute(self):
          
          self.value = self.value_provider()
          if self.value is not_computed:
              return None
          else:
              return self.value
docs: Computes the value. Does not look at the cache.