docs: def get(self, param, default=EMPTY):
          """
          Returns the nparam value, and returns the default if it doesn't exist.
          If default is none, an exception will be raised instead.
  
          the returned parameter will have been specialized against the global context
          """
          if not self.has(param):
              if default is not EMPTY:
                  return default
              raise ParamNotFoundException("value for %s not found" % param)
          context_dict = copy.deepcopy(self.manifest.get_context_dict())
          for k, v in self.raw_dict.items():
              context_dict["%s:%s" % (self.feature_name, k)] = v
          cur_value = self.raw_dict[param]
          prev_value = None
          max_depth = 5
          # apply the context until doing so does not change the value
          while cur_value != prev_value and max_depth > 0:
              prev_value = cur_value
              try:
                  cur_value = str(prev_value) % context_dict
              except KeyError:
                  e = sys.exc_info()[1]
                  key = e.args[0]
                  if key.startswith('config:'):
                      missing_key = key.split(':')[1]
                      if self.manifest.inputs.is_input(missing_key):
                          val = self.manifest.inputs.get_input(missing_key)
                          context_dict[key] = val
                  else:
                      logger.warn("Could not specialize %s! Error: %s" % (self.raw_dict[param], e))
                      return self.raw_dict[param]
              except ValueError:
                  # this is an esoteric error, and this implementation
                  # forces a terrible solution. Sorry.
                  # using the standard escaping syntax in python is a mistake.
                  # if a value has a "%" inside (e.g. a password), a ValueError
                  # is raised, causing an issue
                  return cur_value
              max_depth -= 1
          return cur_value