/*
 * Created on Feb 21, 2006
 */
package org.python.pydev.core;

import java.util.List;

public interface IInterpreterInfo {
    
    /**
     * @return a String such as 2.5 or 2.4 representing the python version that created this interpreter. 
     */
    public String getVersion();
    
    /**
     * @return a constant as defined in IGrammarVersionProvider.
     */
    public int getGrammarVersion();
    
    /**
     * @return a list of strings representing the pythonpath for this interpreter info.
     */
    public List<String> getPythonPath();


    public IModulesManager getModulesManager();

    /**
     * @return a valid path for the interpreter (may not be human readable)
     */
    public String getExeAsFileSystemValidPath();
    
    /**
     * @return the environment variables that should be set when running this interpreter.
     * It can be null if the default environment should be used.
     */
    public String[] getEnvVariables();

    /**
     * This method receives the environment variables available for a run and updates them with the environment
     * variables that are contained in this interpreter.
     * 
     * Note that if a key already exists in the passed env and in the env contained for this interpreter, it's overridden.
     */
    public String[] updateEnv(String[] env);

    /**
     * Creates a copy of the current interpreter info (shares no variables with the original interpreter info). 
     */
    IInterpreterInfo makeCopy();

    public String getExecutableOrJar();
}

@@ -81,16 +81,38 @@
 il.List;
+%0Aimport java.util.Set;
 %0A%0Apublic
@@ -977,24 +977,28 @@
 ariables();%0A
+    
 %0A    /**%0A   
@@ -1292,17 +1292,235 @@
 erridden
-.
+%0A     * unless it's specified in keysThatShouldNotBeUpdated (which may be null). %0A     */%0A    public String%5B%5D updateEnv(String%5B%5D env, Set%3CString%3E keysThatShouldNotBeUpdated);%0A%0A    /**%0A     * Same as updateEnv(env, null)
 %0A     */

Using the environment variables configured in the interpreter in the needed runs.