docs: def get_value(self, var, cast=None, default=environ.Env.NOTSET,  # noqa: C901
                    parse_default=False, raw=False):
          """Return value for given environment variable.
  
                  :param var: Name of variable.
                  :param cast: Type to cast return value as.
                  :param default: If var not present in environ, return this instead.
                  :param parse_default: force to parse default..
  
                  :returns: Value from environment or default (if set)
                  """
  
          if raw:
              env_var = var
          else:
              env_var = f'{self.prefix}{var}'
  
          # logger.debug(f"get '{env_var}' casted as '{cast}' with default '{default}'")
  
          if var in self.scheme:
              var_info = self.scheme[var]
  
              try:
                  has_default = len(var_info) == 2
              except TypeError:
                  has_default = False
  
              if has_default:
                  if not cast:
                      cast = var_info[0]
  
                  if default is self.NOTSET:
                      default = var_info[1]
              else:
                  if not cast:
                      cast = var_info
  
          try:
              value = self.ENVIRON[env_var]
          except KeyError:
              if default is self.NOTSET:
                  error_msg = f'Set the {env_var} environment variable'
                  raise ImproperlyConfigured(error_msg)
  
              value = default
  
          # Resolve any proxied values
          if hasattr(value, 'startswith') and '${' in value:
              m = environ.re.search(r'(\${(.*?)})', value)
              while m:
                  value = re.sub(re.escape(m.group(1)), self.get_value(m.group(2), raw=True), value)
                  m = environ.re.search(r'(\${(.*?)})', value)
  
          if value != default or (parse_default and value):
              value = self.parse_value(value, cast)
  
          logger.debug(f"get '{var}' returns '{value}'")
          return value