[gem5-dev] Change in gem5/gem5[master]: python: Replace dict.has_key with 'key in dict'

2019-02-12 Thread Andreas Sandberg (Gerrit)
Andreas Sandberg has submitted this change and it was merged. (  
https://gem5-review.googlesource.com/c/public/gem5/+/15987 )


Change subject: python: Replace dict.has_key with 'key in dict'
..

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 
---
M src/SConscript
M src/arch/isa_parser.py
M src/arch/x86/isa/macroop.isa
M src/mem/slicc/ast/PeekStatementAST.py
M src/mem/slicc/symbols/StateMachine.py
M src/python/m5/SimObject.py
M src/python/m5/params.py
M src/python/m5/util/multidict.py
M src/unittest/genini.py
9 files changed, 26 insertions(+), 26 deletions(-)

Approvals:
  Giacomo Travaglini: Looks good to me, approved
  Andreas Sandberg: Looks good to me, approved



diff --git a/src/SConscript b/src/SConscript
index dcb08a3..81b6cd3 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -1338,7 +1338,7 @@
 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 16004c0..48bc23f 100755
--- a/src/arch/isa_parser.py
+++ b/src/arch/isa_parser.py
@@ -142,7 +142,7 @@
 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 33e559c..7d72961 100644
--- a/src/arch/x86/isa/macroop.isa
+++ b/src/arch/x86/isa/macroop.isa
@@ -333,7 +333,7 @@
 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 00d26e9..6cadb31 100644
--- a/src/mem/slicc/ast/PeekStatementAST.py
+++ b/src/mem/slicc/ast/PeekStatementAST.py
@@ -71,7 +71,7 @@
 }
 ''')

-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 @@
 }
 ''')

-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 330cc03..03e624b 100644
--- a/src/mem/slicc/symbols/StateMachine.py
+++ b/src/mem/slicc/symbols/StateMachine.py
@@ -239,7 +239,7 @@
 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 @@
 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 97cf6d0..f553fd6 100644
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -534,7 +534,7 @@
 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 @@
 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 

[gem5-dev] Change in gem5/gem5[master]: python: Replace dict.has_key with 'key in dict'

2019-02-12 Thread Andreas Sandberg (Gerrit)

Hello Jason Lowe-Power, Juha Jäykkä, Giacomo Travaglini, Ciro Santilli,

I'd like you to reexamine a change. Please visit

https://gem5-review.googlesource.com/c/public/gem5/+/15987

to look at the new patch set (#6).

Change subject: python: Replace dict.has_key with 'key in dict'
..

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 
---
M src/SConscript
M src/arch/isa_parser.py
M src/arch/x86/isa/macroop.isa
M src/mem/slicc/ast/PeekStatementAST.py
M src/mem/slicc/symbols/StateMachine.py
M src/python/m5/SimObject.py
M src/python/m5/params.py
M src/python/m5/util/multidict.py
M src/unittest/genini.py
9 files changed, 26 insertions(+), 26 deletions(-)


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/15987
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I9852a5f57d672bea815308eb647a0ce45624fad5
Gerrit-Change-Number: 15987
Gerrit-PatchSet: 6
Gerrit-Owner: Andreas Sandberg 
Gerrit-Reviewer: Andreas Sandberg 
Gerrit-Reviewer: Ciro Santilli 
Gerrit-Reviewer: Giacomo Travaglini 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: Juha Jäykkä 
Gerrit-MessageType: newpatchset
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

[gem5-dev] Change in gem5/gem5[master]: python: Replace dict.has_key with 'key in dict'

2019-01-28 Thread Andreas Sandberg (Gerrit)
Andreas Sandberg has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/15987



Change subject: python: Replace dict.has_key with 'key in dict'
..

python: Replace dict.has_key with 'key in dict'

Change-Id: I9852a5f57d672bea815308eb647a0ce45624fad5
Signed-off-by: Andreas Sandberg 
---
M src/python/m5/SimObject.py
M src/python/m5/params.py
M src/python/m5/util/multidict.py
3 files changed, 18 insertions(+), 18 deletions(-)



diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py
index 1aa8dbe..722b665 100644
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -537,7 +537,7 @@
 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__)
@@ -616,11 +616,11 @@
 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

@@ -655,10 +655,10 @@
 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(
@@ -1161,7 +1161,7 @@
 # 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)
@@ -1177,13 +1177,13 @@
 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
@@ -1209,7 +1209,7 @@
 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
@@ -1297,7 +1297,7 @@
 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 f76d7ae..742fb6b 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -161,12 +161,12 @@
 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']
@@ -1228,14 +1228,14 @@
 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")
@@ -1859,7 +1859,7 @@
   "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
@@