Folgendes:
Ich habe 2 Dateien: a.py und b.py
In a.py sind Strukturen vorhanden wie zb (Datei-Auszug):
Code: Alles auswählen
{'collist': [72, 83],
'maxcol': 83,
'maxrow': 76,
'mincol': 72,
'minrow': 58,
'trackid': 'Oval_1',
'type': 'rect'}
Code: Alles auswählen
class MAPPING(StructuredType):
"""MAPPING(domain, range) -> mapping type t
'domain' and 'range' must be stypes
x in t <=> all k in x : (k in domain) and (x[k] in range)
"""
def __init__(self, domain_type, range_type):
self.domainType = domain_type
self.rangeType = range_type
def __contains__(self, arg):
global _depthlevel
_depthlevel+=1
if not isinstance(arg, type({})):
msg="ERROR (MAPP): %s is not a mapping (dicctionary)"%short(arg)
_add_msg(msg)
_depthlevel-=1
return 0
for key, val in arg.iteritems():
if key not in self.domainType:
msg="ERROR (MAPP): %s is not of domain type %s"%(short(key),repr(self.domainType))
_add_msg(msg)
_depthlevel-=1
return 0
if val not in self.rangeType:
msg="ERROR (MAPP): %s is not of range type %s"%(short(key),repr(self.rangeType))
_add_msg(msg)
_depthlevel-=1
return 0
_depthlevel-=1
return 1
Code: Alles auswählen
test = {}
execfile("a.py", {}, test)
assert test in MAPPING
Ich würde aber gern an die Zeilennummer in der eingelesenen a.py kommen, wo der Fehler auftrat.
Das Problem ist nur, dass mir execfile() keine Fehler ausspuckt, weil die Syntax ja stimmt, aber die Struktur halt nicht...
Ich hoffe das Problem wurde verstanden und es hat vielleicht jemand eine Idee
Besten Dank schonmal und Grüsse
Felix