162 |
162 |
163 # The list of complete lines to execute. |
163 # The list of complete lines to execute. |
164 self.buffer = "" |
164 self.buffer = "" |
165 |
165 |
166 # The precompiled regexp to filter variables against |
166 # The precompiled regexp to filter variables against |
167 self.globalsFilterObjects = None |
167 self.globalsFilterObjects = (None, False) # filter regexp, show flag |
168 self.localsFilterObjects = None |
168 self.localsFilterObjects = (None, False) # filter regexp, show flag |
169 |
169 |
170 self._fncache = {} |
170 self._fncache = {} |
171 self.dircache = [] |
171 self.dircache = [] |
172 self.passive = False # used to indicate the passive mode |
172 self.passive = False # used to indicate the passive mode |
173 self.running = None |
173 self.running = None |
1513 @rtype list of tuple of (str, str, str) |
1513 @rtype list of tuple of (str, str, str) |
1514 """ |
1514 """ |
1515 filterList = set(filterList or []) |
1515 filterList = set(filterList or []) |
1516 |
1516 |
1517 varlist = [] |
1517 varlist = [] |
1518 patternFilterObjects = ( |
1518 patternFilterObjects, showFlag = ( |
1519 self.globalsFilterObjects if scope else self.localsFilterObjects |
1519 self.globalsFilterObjects if scope else self.localsFilterObjects |
1520 ) |
1520 ) |
1521 |
1521 |
1522 for variabel in variables: |
1522 for variabel in variables: |
1523 valtype = None |
1523 valtype = None |
1528 # Special case for some Qt variables, where the real type is |
1528 # Special case for some Qt variables, where the real type is |
1529 # overwritten |
1529 # overwritten |
1530 key, valtype, rvalue = variabel |
1530 key, valtype, rvalue = variabel |
1531 |
1531 |
1532 # filter based on the filter pattern |
1532 # filter based on the filter pattern |
1533 if patternFilterObjects and patternFilterObjects.match(str(key)): |
1533 if patternFilterObjects and ( |
|
1534 (not showFlag and patternFilterObjects.match(str(key))) |
|
1535 or (showFlag and not patternFilterObjects.match(str(key))) |
|
1536 ): |
1534 continue |
1537 continue |
1535 |
1538 |
1536 # filter hidden attributes (filter #0) |
1539 # filter hidden attributes (filter #0) |
1537 if "__" in filterList and str(key)[:2] == "__": |
1540 if "__" in filterList and str(key)[:2] == "__": |
1538 continue |
1541 continue |
1647 @param scope 1 to generate filter for global variables, 0 for local |
1650 @param scope 1 to generate filter for global variables, 0 for local |
1648 variables (int) |
1651 variables (int) |
1649 @param filterString string of filter patterns separated by ';' |
1652 @param filterString string of filter patterns separated by ';' |
1650 """ |
1653 """ |
1651 patternFilterObjects = None |
1654 patternFilterObjects = None |
1652 if filterString.strip(): |
1655 filterString = filterString.strip() |
1653 pattern = filterString.replace(";", "|") |
1656 if filterString: |
1654 with contextlib.suppress(re.error): |
1657 if filterString[0] == "~": |
1655 patternFilterObjects = re.compile(pattern) |
1658 showFlag = False |
|
1659 filterString = filterString[1:].strip() |
|
1660 else: |
|
1661 showFlag = True |
|
1662 if filterString: |
|
1663 pattern = filterString.replace(";", "|") |
|
1664 with contextlib.suppress(re.error): |
|
1665 patternFilterObjects = re.compile(pattern) |
|
1666 else: |
|
1667 showFlag = False |
1656 |
1668 |
1657 if scope: |
1669 if scope: |
1658 self.globalsFilterObjects = patternFilterObjects |
1670 self.globalsFilterObjects = (patternFilterObjects, showFlag) |
1659 else: |
1671 else: |
1660 self.localsFilterObjects = patternFilterObjects |
1672 self.localsFilterObjects = (patternFilterObjects, showFlag) |
1661 |
1673 |
1662 def __completionList(self, text): |
1674 def __completionList(self, text): |
1663 """ |
1675 """ |
1664 Private slot to handle the request for a commandline completion list. |
1676 Private slot to handle the request for a commandline completion list. |
1665 |
1677 |