Byproducts of aborted attempt to refine 'parent' proxy semantics.

Mostly cleanup of mpy_importer.mpy_parse().

python/m5/__init__.py:
    Move panic() up to top in case we want to use it
    in mpy_importer (though I ended up not doing that
    after all).
python/m5/config.py:
    Add a couple of comments and a check for expressions
    like parent.any.foo (which is illegal).

--HG--
extra : convert_revision : dfc99ac9b1a2d91a736ca0b773b6d3c528a4f3cc
This commit is contained in:
Steve Reinhardt 2005-03-18 13:34:28 -05:00
parent 8b9e38c303
commit c929ee2c10
2 changed files with 8 additions and 5 deletions

View file

@ -1,14 +1,14 @@
import sys, os
# the mpy import code is added to the global import meta_path as a
# side effect of this import
from mpy_importer import AddToPath, LoadMpyFile
# define this here so we can use it right away if necessary
def panic(string):
print >>sys.stderr, 'panic:', string
sys.exit(1)
# the mpy import code is added to the global import meta_path as a
# side effect of this import
from mpy_importer import AddToPath, LoadMpyFile
# find the m5 compile options: must be specified as a dict in
# __main__.m5_build_env.
import __main__

View file

@ -151,8 +151,11 @@ class Proxy(object):
self._multiplier = None
def __getattr__(self, attr):
# python uses __bases__ internally for inheritance
if attr == '__bases__':
return super(Proxy, self).__getattr__(self, attr)
if (self._path == None):
panic("Can't add attributes to 'any' proxy")
self._path.append((attr,None))
return self
@ -347,7 +350,7 @@ class MetaConfigNode(type):
elif isNullPointer(val):
cls._values[key] = val
# process param types from _init_dict, as these may be needed
# process param types from _init_dict first, as these may be needed
# by param descriptions also in _init_dict
for key,val in cls._init_dict.items():
if isinstance(val, type) and issubclass(val, ParamType):