mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 10:11:46 +00:00
Update validate.py
This commit is contained in:
@@ -19,22 +19,22 @@ attribute = ifcopenshell.ifcopenshell_wrapper.attribute
|
|||||||
|
|
||||||
class ValidationError(Exception): pass
|
class ValidationError(Exception): pass
|
||||||
|
|
||||||
log_entry_type = namedtuple('log_entry_type', ("level", "message", "product"))
|
log_entry_type = namedtuple('log_entry_type', ("level", "message", "instance"))
|
||||||
|
|
||||||
class json_logger:
|
class json_logger:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.statements = []
|
self.statements = []
|
||||||
self.product = None
|
self.instance = None
|
||||||
|
|
||||||
def set_product(self, product):
|
def set_instance(self, instance):
|
||||||
self.product = product
|
self.instance = instance
|
||||||
|
|
||||||
def log(self, level, message, product):
|
def log(self, level, message, instance):
|
||||||
self.statements.append(log_entry_type(level, message, product)._asdict())
|
self.statements.append(log_entry_type(level, message, instance)._asdict())
|
||||||
|
|
||||||
def __getattr__(self, level):
|
def __getattr__(self, level):
|
||||||
return functools.partial(self.log, level, product=self.product)
|
return functools.partial(self.log, level, instance=self.instance)
|
||||||
|
|
||||||
|
|
||||||
simple_type_python_mapping = {
|
simple_type_python_mapping = {
|
||||||
@@ -100,8 +100,8 @@ def try_valid(attr, val):
|
|||||||
def validate(f, logger):
|
def validate(f, logger):
|
||||||
schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(f.schema)
|
schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(f.schema)
|
||||||
for inst in f:
|
for inst in f:
|
||||||
if hasattr(logger, 'set_product'):
|
if hasattr(logger, 'set_instance'):
|
||||||
logger.set_product(inst)
|
logger.set_instance(inst)
|
||||||
|
|
||||||
entity = schema.declaration_by_name(inst.is_a())
|
entity = schema.declaration_by_name(inst.is_a())
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ def validate(f, logger):
|
|||||||
try:
|
try:
|
||||||
assert_valid(attr, val)
|
assert_valid(attr, val)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
if hasattr(logger, 'set_product'):
|
if hasattr(logger, 'set_instance'):
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
else:
|
else:
|
||||||
logger.error('In {}\n{}'.format(inst, e))
|
logger.error('In {}\n{}'.format(inst, e))
|
||||||
@@ -125,7 +125,7 @@ def validate(f, logger):
|
|||||||
try:
|
try:
|
||||||
assert_valid_inverse(attr, val)
|
assert_valid_inverse(attr, val)
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
if hasattr(logger, 'set_product'):
|
if hasattr(logger, 'set_instance'):
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
else:
|
else:
|
||||||
logger.error('In {}\n{}'.format(inst, e))
|
logger.error('In {}\n{}'.format(inst, e))
|
||||||
|
|||||||
Reference in New Issue
Block a user