src/eric7/DebugClients/Python/DebugClientBase.py

branch
eric7
changeset 9383
1d9a71952123
parent 9221
bf71ee032bb4
child 9396
06699e5600a3
equal deleted inserted replaced
9382:fb89c1dc9825 9383:1d9a71952123
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

eric ide

mercurial