code: def validate(self, settings):
          
  
          if self.envs is None:
              self.envs = [settings.current_env]
  
          if self.when is not None:
              try:
                  # inherit env if not defined
                  if self.when.envs is None:
                      self.when.envs = self.envs
  
                  self.when.validate(settings)
              except ValidationError:
                  # if when is invalid, return canceling validation flow
                  return
  
          # If only using current_env, skip using_env decoration (reload)
          if (
              len(self.envs) == 1
              and self.envs[0].upper() == settings.current_env.upper()
          ):
              self._validate_items(settings, settings.current_env)
              return
  
          for env in self.envs:
              with settings.using_env(env):
                  self._validate_items(settings, env)
docs: Raise ValidationError if invalid