code: def create_env(self, include_activation=True, **props) -> "Environment":
          
          self: EnvvarProfile
          props = dict(props)
          env = Environment()
  
          if include_activation:
              env[self._active_profile_name_envvar] = self.profile_name
  
          for k in self.profile_properties:
              p = self._get_prop(k)
              if k in props:
                  v = props.pop(k)
                  env[p.get_envvar(self)] = p.to_str(self, v)
              else:
                  env[p.get_envvar(self)] = self._get_prop_value(p)
  
          if props:
              raise ValueError(f"Unexpected property names: {', '.join(str(k) for k in props.keys())}")
  
          return env
docs: Create a custom dictionary of environment variables representing an environment
          by passing values of properties as keyword arguments.
  
          Values of properties not mentioned in the env will be taken from the
          profile itself.
  
          Property values that are None should be interpreted and will be interpreted in
          Environment.applied as environment variables to be unset.
  
          Calling this does NOT modify the profile or the environment variables.
  
          TODO v5.x: Perhaps this can completely replace EnvvarProfile.to_envvars.