Пример #1
0
 def _extract_variable(self, line, column, new_name, until_line=None, until_column=None):
     if until_line is None and until_column is None:
         until_pos = None
     else:
         if until_line is None:
             until_line = line
         if until_column is None:
             until_column = len(self._code_lines[until_line - 1])
         until_pos = until_line, until_column
     return extract_variable(
         self._inference_state, self.path, self._module_node,
         new_name, (line, column), until_pos
     )
Пример #2
0
    def extract_variable(self,
                         line,
                         column,
                         *,
                         new_name,
                         until_line=None,
                         until_column=None):
        """
        Moves an expression to a new statemenet.

        For example if you have the cursor on ``foo`` and provide a
        ``new_name`` called ``bar``::

            foo = 3.1
            x = int(foo + 1)

        the code above will become::

            foo = 3.1
            bar = foo + 1
            x = int(bar)

        :param new_name: The expression under the cursor will be renamed to
            this string.
        :param int until_line: The the selection range ends at this line, when
            omitted, Jedi will be clever and try to define the range itself.
        :param int until_column: The the selection range ends at this column, when
            omitted, Jedi will be clever and try to define the range itself.
        :raises: :exc:`.RefactoringError`
        :rtype: :class:`.Refactoring`
        """
        if until_line is None and until_column is None:
            until_pos = None
        else:
            if until_line is None:
                until_line = line
            if until_column is None:
                until_column = len(self._code_lines[until_line - 1])
            until_pos = until_line, until_column
        return extract_variable(self._inference_state, self.path,
                                self._module_node, new_name, (line, column),
                                until_pos)