Crash when structure table columns are no series literals
The following code
use randint from numpy.random
s = Structure from file '/home/ubuntu/work/vre-language/examples/2.xyz'
subst = map((x: if(x>-1, randint(0, 108), -1)), range(0, 17, 1))
symbols = map((x: if((x in subst), 'Cu', 'Ag')), range(0, 108, 1))
atoms = (atoms: Table(symbols, s.atoms[0].x, s.atoms[0].y, s.atoms[0].z))
t = Structure CuAg Table(atoms, s.cell, s.pbc)
causes a crash:
Traceback (most recent call last):
File "vre-language/src/virtmat/language/utilities/errors.py", line 306, in wrapper
return func(*args, **kwargs)
File "vre-language/src/virtmat/language/interpreter/session_manager.py", line 186, in get_model_value
return getattr(self.session.get_model(*args, uuid=self.uuid, **kwargs), 'value', '')
File "vre-language/src/virtmat/language/interpreter/session.py", line 149, in get_model
self.process_models(model_str, model_path, active_uuid=uuid)
File "vre-language/src/virtmat/language/interpreter/session.py", line 205, in process_models
model, uuid = self._process_model(uuid, strn, path, active_uuid=active_uuid)
File "vre-language/src/virtmat/language/interpreter/session.py", line 548, in _process_model
model = tx_get_model(model_src, deferred_mode=True,
File "python-3.10.12/lib/python3.10/site-packages/textx/metamodel.py", line 699, in model_from_str
p(model, self)
File "vre-language/src/virtmat/language/constraints/processors.py", line 34, in check_types_processor
_ = obj.type_
File "/usr/lib/python3.10/functools.py", line 981, in __get__
val = self.func(instance)
File "vre-language/src/virtmat/language/utilities/errors.py", line 211, in wrapper
return func(*args, **kwargs)
File "vre-language/src/virtmat/language/constraints/typechecks.py", line 71, in variable_type
return self.parameter.type_
File "/usr/lib/python3.10/functools.py", line 981, in __get__
val = self.func(instance)
File "vre-language/src/virtmat/language/utilities/errors.py", line 215, in wrapper
raise TextXError(str(err), **get_location_context(obj)) from err
textx.exceptions.TextXError: None:1:313: 'GeneralReference' object has no attribute 'name' => 'Structure CuAg Table(atoms, s.cell, s.pbc)'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "vre-language/src/virtmat/language/utilities/errors.py", line 306, in wrapper
return func(*args, **kwargs)
File "vre-language/src/virtmat/language/interpreter/session_manager.py", line 212, in process_input
output = self.get_model_value(model_str=input_str)
File "vre-language/src/virtmat/language/utilities/errors.py", line 308, in wrapper
process_error(err)
File "vre-language/src/virtmat/language/utilities/errors.py", line 296, in process_error
raise err.__cause__
File "vre-language/src/virtmat/language/utilities/errors.py", line 211, in wrapper
return func(*args, **kwargs)
File "vre-language/src/virtmat/language/constraints/typechecks.py", line 742, in amml_structure_type
if 'atoms' not in [c.name for c in self.tab.columns]:
File "vre-language/src/virtmat/language/constraints/typechecks.py", line 742, in <listcomp>
if 'atoms' not in [c.name for c in self.tab.columns]:
AttributeError: 'GeneralReference' object has no attribute 'name'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "vre-language/src/virtmat/language/utilities/errors.py", line 306, in wrapper
return func(*args, **kwargs)
File "vre-language/src/virtmat/language/cli/run_session.py", line 98, in main
mgr.main_loop()
File "vre-language/src/virtmat/language/interpreter/session_manager.py", line 161, in main_loop
self.interact(banner='Welcome to textS/textM. Type %help for some help.',
File "/usr/lib/python3.10/code.py", line 232, in interact
more = self.push(line)
File "/usr/lib/python3.10/code.py", line 258, in push
more = self.runsource(source, self.filename)
File "vre-language/src/virtmat/language/interpreter/session_manager.py", line 173, in runsource
need_inp = self.process_input(source)
File "vre-language/src/virtmat/language/utilities/errors.py", line 341, in wrapper
raise RuntimeError('non-handled exception') from err
RuntimeError: non-handled exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "vre-language/src/virtmat/language/utilities/errors.py", line 306, in wrapper
return func(*args, **kwargs)
File "vre-language/src/virtmat/language/cli/__init__.py", line 38, in texts
clargs.func(clargs)
File "vre-language/src/virtmat/language/utilities/errors.py", line 341, in wrapper
raise RuntimeError('non-handled exception') from err
RuntimeError: non-handled exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "python-3.10.12/bin/texts", line 8, in <module>
sys.exit(texts())
File "vre-language/src/virtmat/language/utilities/errors.py", line 341, in wrapper
raise RuntimeError('non-handled exception') from err
RuntimeError: non-handled exception