From 5cd4248672e5cd62cfec4753bd6d6ce666694f1f Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Fri, 25 Jan 2019 12:12:38 +0000 Subject: python: Replace dict.has_key with 'key in dict' Python 3 has removed dict.has_key in favour of 'key in dict'. Change-Id: I9852a5f57d672bea815308eb647a0ce45624fad5 Signed-off-by: Andreas Sandberg Reviewed-on: https://gem5-review.googlesource.com/c/15987 Reviewed-by: Giacomo Travaglini --- src/SConscript | 2 +- src/arch/isa_parser.py | 2 +- src/arch/x86/isa/macroop.isa | 2 +- src/mem/slicc/ast/PeekStatementAST.py | 4 ++-- src/mem/slicc/symbols/StateMachine.py | 4 ++-- src/python/m5/SimObject.py | 22 +++++++++++----------- src/python/m5/params.py | 12 ++++++------ src/python/m5/util/multidict.py | 2 +- src/unittest/genini.py | 2 +- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/SConscript b/src/SConscript index dcb08a304..81b6cd3f1 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1338,7 +1338,7 @@ def identifyTarget(t): ext = t.split('.')[-1] if ext in target_types: return ext - if obj2target.has_key(ext): + if ext in obj2target: return obj2target[ext] match = re.search(r'/tests/([^/]+)/', t) if match and match.group(1) in target_types: diff --git a/src/arch/isa_parser.py b/src/arch/isa_parser.py index 16004c009..48bc23fa3 100755 --- a/src/arch/isa_parser.py +++ b/src/arch/isa_parser.py @@ -142,7 +142,7 @@ class Template(object): del myDict['snippets'] snippetLabels = [l for l in labelRE.findall(template) - if d.snippets.has_key(l)] + if l in d.snippets] snippets = dict([(s, self.parser.mungeSnippet(d.snippets[s])) for s in snippetLabels]) diff --git a/src/arch/x86/isa/macroop.isa b/src/arch/x86/isa/macroop.isa index 33e559c11..7d729618a 100644 --- a/src/arch/x86/isa/macroop.isa +++ b/src/arch/x86/isa/macroop.isa @@ -333,7 +333,7 @@ let {{ noModRMString = "env.setSeg(machInst);\n" def genMacroop(Name, env): blocks = OutputBlocks() - if not macroopDict.has_key(Name): + if not Name in macroopDict: raise Exception, "Unrecognized instruction: %s" % Name macroop = macroopDict[Name] if not macroop.declared: diff --git a/src/mem/slicc/ast/PeekStatementAST.py b/src/mem/slicc/ast/PeekStatementAST.py index 00d26e908..6cadb3130 100644 --- a/src/mem/slicc/ast/PeekStatementAST.py +++ b/src/mem/slicc/ast/PeekStatementAST.py @@ -71,7 +71,7 @@ class PeekStatementAST(StatementAST): } ''') - if self.pairs.has_key("block_on"): + if "block_on" in self.pairs: address_field = self.pairs['block_on'] code(''' if (m_is_blocking && @@ -82,7 +82,7 @@ class PeekStatementAST(StatementAST): } ''') - if self.pairs.has_key("wake_up"): + if "wake_up" in self.pairs: address_field = self.pairs['wake_up'] code(''' if (m_waiting_buffers.count(in_msg_ptr->m_$address_field) > 0) { diff --git a/src/mem/slicc/symbols/StateMachine.py b/src/mem/slicc/symbols/StateMachine.py index 330cc0369..03e624b11 100644 --- a/src/mem/slicc/symbols/StateMachine.py +++ b/src/mem/slicc/symbols/StateMachine.py @@ -239,7 +239,7 @@ class $py_ident(RubyController): if param.rvalue is not None: dflt_str = str(param.rvalue.inline()) + ', ' - if python_class_map.has_key(param.type_ast.type.c_ident): + if param.type_ast.type.c_ident in python_class_map: python_type = python_class_map[param.type_ast.type.c_ident] code('${{param.ident}} = Param.${{python_type}}(${dflt_str}"")') @@ -1109,7 +1109,7 @@ ${ident}_Controller::wakeup() for port in self.in_ports: code.indent() code('// ${ident}InPort $port') - if port.pairs.has_key("rank"): + if "rank" in port.pairs: code('m_cur_in_port = ${{port.pairs["rank"]}};') else: code('m_cur_in_port = 0;') diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index 97cf6d096..f553fd664 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -534,7 +534,7 @@ class MetaSimObject(type): cls._new_port(key, val) # init-time-only keywords - elif cls.init_keywords.has_key(key): + elif key in cls.init_keywords: cls._set_keyword(key, val, cls.init_keywords[key]) # default: use normal path (ends up in __setattr__) @@ -613,11 +613,11 @@ class MetaSimObject(type): type.__setattr__(cls, attr, value) return - if cls.keywords.has_key(attr): + if attr in cls.keywords: cls._set_keyword(attr, value, cls.keywords[attr]) return - if cls._ports.has_key(attr): + if attr in cls._ports: cls._cls_get_port_ref(attr).connect(value) return @@ -652,10 +652,10 @@ class MetaSimObject(type): if attr == 'cxx_namespaces': return cls.cxx_class_path[:-1] - if cls._values.has_key(attr): + if attr in cls._values: return cls._values[attr] - if cls._children.has_key(attr): + if attr in cls._children: return cls._children[attr] raise AttributeError( @@ -1158,7 +1158,7 @@ class SimObject(object): # create a new dict and use that. memo_dict = {} kwargs['_memo'] = memo_dict - elif memo_dict.has_key(self): + elif self in memo_dict: # clone already done & memoized return memo_dict[self] return self.__class__(_ancestor = self, **kwargs) @@ -1174,13 +1174,13 @@ class SimObject(object): return ref def __getattr__(self, attr): - if self._ports.has_key(attr): + if attr in self._ports: return self._get_port_ref(attr) - if self._values.has_key(attr): + if attr in self._values: return self._values[attr] - if self._children.has_key(attr): + if attr in self._children: return self._children[attr] # If the attribute exists on the C++ object, transparently @@ -1206,7 +1206,7 @@ class SimObject(object): object.__setattr__(self, attr, value) return - if self._ports.has_key(attr): + if attr in self._ports: # set up port connection self._get_port_ref(attr).connect(value) return @@ -1294,7 +1294,7 @@ class SimObject(object): if child.has_parent(): warn("add_child('%s'): child '%s' already has parent", name, child.get_name()) - if self._children.has_key(name): + if name in self._children: # This code path had an undiscovered bug that would make it fail # at runtime. It had been here for a long time and was only # exposed by a buggy script. Changes here will probably not be diff --git a/src/python/m5/params.py b/src/python/m5/params.py index 0a563b8f2..09aaa5af7 100644 --- a/src/python/m5/params.py +++ b/src/python/m5/params.py @@ -157,12 +157,12 @@ class ParamDesc(object): else: raise TypeError('too many arguments') - if kwargs.has_key('desc'): + if 'desc' in kwargs: assert(not hasattr(self, 'desc')) self.desc = kwargs['desc'] del kwargs['desc'] - if kwargs.has_key('default'): + if 'default' in kwargs: assert(not hasattr(self, 'default')) self.default = kwargs['default'] del kwargs['default'] @@ -1224,14 +1224,14 @@ class MetaEnum(MetaParamValue): return cls def __init__(cls, name, bases, init_dict): - if init_dict.has_key('map'): + if 'map' in init_dict: if not isinstance(cls.map, dict): raise TypeError("Enum-derived class attribute 'map' " \ "must be of type dict") # build list of value strings from map cls.vals = cls.map.keys() cls.vals.sort() - elif init_dict.has_key('vals'): + elif 'vals' in init_dict: if not isinstance(cls.vals, list): raise TypeError("Enum-derived class attribute 'vals' " \ "must be of type list") @@ -1855,7 +1855,7 @@ class PortRef(object): "cannot splice in new peers\n", self) def clone(self, simobj, memo): - if memo.has_key(self): + if self in memo: return memo[self] newRef = copy.copy(self) memo[self] = newRef @@ -1978,7 +1978,7 @@ class VectorPortRef(object): self._get_next().connect(other) def clone(self, simobj, memo): - if memo.has_key(self): + if self in memo: return memo[self] newRef = copy.copy(self) memo[self] = newRef diff --git a/src/python/m5/util/multidict.py b/src/python/m5/util/multidict.py index 28090a251..58898a5d2 100644 --- a/src/python/m5/util/multidict.py +++ b/src/python/m5/util/multidict.py @@ -43,7 +43,7 @@ class multidict(object): return `dict(self.items())` def __contains__(self, key): - return self.local.has_key(key) or self.parent.has_key(key) + return key in self.local or key in self.parent def __delitem__(self, key): try: diff --git a/src/unittest/genini.py b/src/unittest/genini.py index f10ad6874..ea2763a34 100755 --- a/src/unittest/genini.py +++ b/src/unittest/genini.py @@ -70,7 +70,7 @@ for path in pathlist: for arg in args: m5execfile(arg, globals()) -if globals().has_key('root') and isinstance(root, Root): +if 'root' in globals() and isinstance(root, Root): instantiate(root) else: print("Instantiation skipped: no root object found.") -- cgit v1.2.3