97 "package": self.tr("package"), |
97 "package": self.tr("package"), |
98 "object": self.tr("object"), |
98 "object": self.tr("object"), |
99 "<unknown>": self.tr("not known"), |
99 "<unknown>": self.tr("not known"), |
100 } |
100 } |
101 |
101 |
102 # Python 2 |
|
103 self.__ensureActive("Python2") |
|
104 |
|
105 # Python 3 |
102 # Python 3 |
106 self.__ensureActive("Python3") |
103 self.__ensureActive("Python3") |
107 |
104 |
108 def setAsyncCompletions(self, asynchronous): |
105 def setAsyncCompletions(self, asynchronous): |
109 """ |
106 """ |
118 """ |
115 """ |
119 Private method to update the editor language to connection mapping. |
116 Private method to update the editor language to connection mapping. |
120 """ |
117 """ |
121 self.__editorLanguageMapping = {} |
118 self.__editorLanguageMapping = {} |
122 for name in self.connectionNames(): |
119 for name in self.connectionNames(): |
123 if name == "Python2": |
120 if name == "Python3": |
124 self.__editorLanguageMapping.update({ |
|
125 "Python": "Python2", |
|
126 "Python2": "Python2", |
|
127 "Pygments|Python": "Python2", |
|
128 }) |
|
129 elif name == "Python3": |
|
130 self.__editorLanguageMapping.update({ |
121 self.__editorLanguageMapping.update({ |
131 "Python3": "Python3", |
122 "Python3": "Python3", |
132 "Pygments|Python 3": "Python3", |
123 "Pygments|Python 3": "Python3", |
133 "MicroPython": "Python3", |
124 "MicroPython": "Python3", |
134 }) |
125 }) |
668 else: |
659 else: |
669 interpreter = "" |
660 interpreter = "" |
670 venvName = "" |
661 venvName = "" |
671 clientEnv = os.environ.copy() |
662 clientEnv = os.environ.copy() |
672 if "PATH" in clientEnv: |
663 if "PATH" in clientEnv: |
673 try: |
664 clientEnv["PATH"] = self.__ui.getOriginalPathString() |
674 clientEnv["PATH"] = self.__ui.getOriginalPathString() |
665 venvManager = e5App().getObject("VirtualEnvManager") |
675 except AttributeError: |
666 if idString == "Python3": |
676 # ignore for eric6 < 18.12 |
667 # Python 3 |
677 pass |
668 venvName = Preferences.getDebugger("Python3VirtualEnv") |
678 try: |
669 if not venvName and sys.version_info[0] >= 3: |
679 # new code using virtual environments |
670 venvName, _ = venvManager.getDefaultEnvironment() |
680 venvManager = e5App().getObject("VirtualEnvManager") |
671 if venvName: |
681 if idString == "Python2": |
672 interpreter = venvManager.getVirtualenvInterpreter( |
682 # Python 2 |
673 venvName) |
683 venvName = Preferences.getDebugger("Python2VirtualEnv") |
674 |
684 if not venvName and sys.version_info[0] == 2: |
675 execPath = venvManager.getVirtualenvExecPath(venvName) |
685 try: |
676 |
686 venvName, _ = ( |
677 # build a suitable environment |
687 venvManager.getDefaultEnvironment() |
678 if execPath: |
688 ) |
679 if "PATH" in clientEnv: |
689 except AttributeError: |
680 clientEnv["PATH"] = os.pathsep.join( |
690 # ignore for eric6 < 18.10 |
681 [execPath, clientEnv["PATH"]]) |
691 pass |
682 else: |
692 elif idString == "Python3": |
683 clientEnv["PATH"] = execPath |
693 # Python 3 |
|
694 venvName = Preferences.getDebugger("Python3VirtualEnv") |
|
695 if not venvName and sys.version_info[0] >= 3: |
|
696 try: |
|
697 venvName, _ = ( |
|
698 venvManager.getDefaultEnvironment() |
|
699 ) |
|
700 except AttributeError: |
|
701 # ignore for eric6 < 18.10 |
|
702 pass |
|
703 if venvName: |
|
704 interpreter = venvManager.getVirtualenvInterpreter( |
|
705 venvName) |
|
706 |
|
707 try: |
|
708 execPath = venvManager.getVirtualenvExecPath( |
|
709 venvName) |
|
710 except AttributeError: |
|
711 # eric6 < 18.12 |
|
712 execPath = "" |
|
713 |
|
714 # build a suitable environment |
|
715 if execPath: |
|
716 if "PATH" in clientEnv: |
|
717 clientEnv["PATH"] = os.pathsep.join( |
|
718 [execPath, clientEnv["PATH"]]) |
|
719 else: |
|
720 clientEnv["PATH"] = execPath |
|
721 except KeyError: |
|
722 # backward compatibility (eric <18.07) |
|
723 if idString == "Python2": |
|
724 # Python 2 |
|
725 interpreter = Preferences.getDebugger( |
|
726 "PythonInterpreter") |
|
727 elif idString == "Python3": |
|
728 # Python 3 |
|
729 interpreter = Preferences.getDebugger( |
|
730 "Python3Interpreter") |
|
731 if interpreter: |
684 if interpreter: |
732 ok = self.__startCodeAssistClient(interpreter, idString, |
685 ok = self.__startCodeAssistClient(interpreter, idString, |
733 clientEnv) |
686 clientEnv) |
734 else: |
687 else: |
735 ok = False |
688 ok = False |
761 |
714 |
762 # get virtual environment from project first |
715 # get virtual environment from project first |
763 venvName = self.__e5project.getDebugProperty("VIRTUALENV") |
716 venvName = self.__e5project.getDebugProperty("VIRTUALENV") |
764 if not venvName: |
717 if not venvName: |
765 # get it from debugger settings next |
718 # get it from debugger settings next |
766 if projectLanguage == "Python2": |
719 if projectLanguage == "Python3": |
767 # Python 2 |
|
768 venvName = Preferences.getDebugger("Python2VirtualEnv") |
|
769 if not venvName and sys.version_info[0] == 2: |
|
770 try: |
|
771 venvName, _ = ( |
|
772 venvManager.getDefaultEnvironment() |
|
773 ) |
|
774 except AttributeError: |
|
775 # ignore for eric6 < 18.10 |
|
776 pass |
|
777 elif projectLanguage == "Python3": |
|
778 # Python 3 |
720 # Python 3 |
779 venvName = Preferences.getDebugger("Python3VirtualEnv") |
721 venvName = Preferences.getDebugger("Python3VirtualEnv") |
780 if not venvName and sys.version_info[0] >= 3: |
722 if not venvName and sys.version_info[0] >= 3: |
781 try: |
723 try: |
782 venvName, _ = ( |
724 venvName, _ = ( |
809 # backward compatibility (eric < 18.07) |
751 # backward compatibility (eric < 18.07) |
810 # get interpreter from project first |
752 # get interpreter from project first |
811 interpreter = self.__e5project.getDebugProperty("INTERPRETER") |
753 interpreter = self.__e5project.getDebugProperty("INTERPRETER") |
812 if not interpreter or not Utilities.isinpath(interpreter): |
754 if not interpreter or not Utilities.isinpath(interpreter): |
813 # get it from debugger settings second |
755 # get it from debugger settings second |
814 if projectLanguage == "Python2": |
756 if projectLanguage == "Python3": |
815 interpreter = Preferences.getDebugger( |
|
816 "PythonInterpreter") |
|
817 elif projectLanguage == "Python3": |
|
818 interpreter = Preferences.getDebugger( |
757 interpreter = Preferences.getDebugger( |
819 "Python3Interpreter") |
758 "Python3Interpreter") |
820 |
759 |
821 return interpreter, clientEnv |
760 return interpreter, clientEnv |
822 |
761 |