params.py (13663:9b64aeabf9a5) params.py (13675:afeab32b3655)
1# Copyright (c) 2012-2014, 2017, 2018 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 143 unchanged lines hidden (view full) ---

152 if len(args) == 1:
153 self.desc = args[0]
154 elif len(args) == 2:
155 self.default = args[0]
156 self.desc = args[1]
157 else:
158 raise TypeError('too many arguments')
159
1# Copyright (c) 2012-2014, 2017, 2018 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 143 unchanged lines hidden (view full) ---

152 if len(args) == 1:
153 self.desc = args[0]
154 elif len(args) == 2:
155 self.default = args[0]
156 self.desc = args[1]
157 else:
158 raise TypeError('too many arguments')
159
160 if kwargs.has_key('desc'):
160 if 'desc' in kwargs:
161 assert(not hasattr(self, 'desc'))
162 self.desc = kwargs['desc']
163 del kwargs['desc']
164
161 assert(not hasattr(self, 'desc'))
162 self.desc = kwargs['desc']
163 del kwargs['desc']
164
165 if kwargs.has_key('default'):
165 if 'default' in kwargs:
166 assert(not hasattr(self, 'default'))
167 self.default = kwargs['default']
168 del kwargs['default']
169
170 if kwargs:
171 raise TypeError('extra unknown kwargs %s' % kwargs)
172
173 if not hasattr(self, 'desc'):

--- 1045 unchanged lines hidden (view full) ---

1219 def __new__(mcls, name, bases, dict):
1220 assert name not in allEnums
1221
1222 cls = super(MetaEnum, mcls).__new__(mcls, name, bases, dict)
1223 allEnums[name] = cls
1224 return cls
1225
1226 def __init__(cls, name, bases, init_dict):
166 assert(not hasattr(self, 'default'))
167 self.default = kwargs['default']
168 del kwargs['default']
169
170 if kwargs:
171 raise TypeError('extra unknown kwargs %s' % kwargs)
172
173 if not hasattr(self, 'desc'):

--- 1045 unchanged lines hidden (view full) ---

1219 def __new__(mcls, name, bases, dict):
1220 assert name not in allEnums
1221
1222 cls = super(MetaEnum, mcls).__new__(mcls, name, bases, dict)
1223 allEnums[name] = cls
1224 return cls
1225
1226 def __init__(cls, name, bases, init_dict):
1227 if init_dict.has_key('map'):
1227 if 'map' in init_dict:
1228 if not isinstance(cls.map, dict):
1229 raise TypeError("Enum-derived class attribute 'map' " \
1230 "must be of type dict")
1231 # build list of value strings from map
1232 cls.vals = cls.map.keys()
1233 cls.vals.sort()
1228 if not isinstance(cls.map, dict):
1229 raise TypeError("Enum-derived class attribute 'map' " \
1230 "must be of type dict")
1231 # build list of value strings from map
1232 cls.vals = cls.map.keys()
1233 cls.vals.sort()
1234 elif init_dict.has_key('vals'):
1234 elif 'vals' in init_dict:
1235 if not isinstance(cls.vals, list):
1236 raise TypeError("Enum-derived class attribute 'vals' " \
1237 "must be of type list")
1238 # build string->value map from vals sequence
1239 cls.map = {}
1240 for idx,val in enumerate(cls.vals):
1241 cls.map[val] = idx
1242 else:

--- 607 unchanged lines hidden (view full) ---

1850 old_peer.peer = new_master_peer
1851 new_slave_peer.connect(self)
1852 new_master_peer.connect(old_peer)
1853 else:
1854 panic("Port %s has unknown role, "+\
1855 "cannot splice in new peers\n", self)
1856
1857 def clone(self, simobj, memo):
1235 if not isinstance(cls.vals, list):
1236 raise TypeError("Enum-derived class attribute 'vals' " \
1237 "must be of type list")
1238 # build string->value map from vals sequence
1239 cls.map = {}
1240 for idx,val in enumerate(cls.vals):
1241 cls.map[val] = idx
1242 else:

--- 607 unchanged lines hidden (view full) ---

1850 old_peer.peer = new_master_peer
1851 new_slave_peer.connect(self)
1852 new_master_peer.connect(old_peer)
1853 else:
1854 panic("Port %s has unknown role, "+\
1855 "cannot splice in new peers\n", self)
1856
1857 def clone(self, simobj, memo):
1858 if memo.has_key(self):
1858 if self in memo:
1859 return memo[self]
1860 newRef = copy.copy(self)
1861 memo[self] = newRef
1862 newRef.simobj = simobj
1863 assert(isSimObject(newRef.simobj))
1864 if self.peer and not proxy.isproxy(self.peer):
1865 peerObj = self.peer.simobj(_memo=memo)
1866 newRef.peer = self.peer.clone(peerObj, memo)

--- 106 unchanged lines hidden (view full) ---

1973 # or if it should replace the current vector.
1974 for ref in other:
1975 self._get_next().connect(ref)
1976 else:
1977 # scalar assignment to plain VectorPort is implicit append
1978 self._get_next().connect(other)
1979
1980 def clone(self, simobj, memo):
1859 return memo[self]
1860 newRef = copy.copy(self)
1861 memo[self] = newRef
1862 newRef.simobj = simobj
1863 assert(isSimObject(newRef.simobj))
1864 if self.peer and not proxy.isproxy(self.peer):
1865 peerObj = self.peer.simobj(_memo=memo)
1866 newRef.peer = self.peer.clone(peerObj, memo)

--- 106 unchanged lines hidden (view full) ---

1973 # or if it should replace the current vector.
1974 for ref in other:
1975 self._get_next().connect(ref)
1976 else:
1977 # scalar assignment to plain VectorPort is implicit append
1978 self._get_next().connect(other)
1979
1980 def clone(self, simobj, memo):
1981 if memo.has_key(self):
1981 if self in memo:
1982 return memo[self]
1983 newRef = copy.copy(self)
1984 memo[self] = newRef
1985 newRef.simobj = simobj
1986 assert(isSimObject(newRef.simobj))
1987 newRef.elements = [el.clone(simobj, memo) for el in self.elements]
1988 return newRef
1989

--- 117 unchanged lines hidden ---
1982 return memo[self]
1983 newRef = copy.copy(self)
1984 memo[self] = newRef
1985 newRef.simobj = simobj
1986 assert(isSimObject(newRef.simobj))
1987 newRef.elements = [el.clone(simobj, memo) for el in self.elements]
1988 return newRef
1989

--- 117 unchanged lines hidden ---