populse / capsul

Collaborative Analysis Platform : Simple, Unifying, Lean
Other
7 stars 14 forks source link

Axon bindings broken due to missing Process.metadata_schema #329

Open ylep opened 10 months ago

ylep commented 10 months ago

This is related to #328 but I believe it deserves a separate issue: when a Capsul process does not have any associated metada_schemas attribute, the Axon bindings currently fail to load it:

Traceback (most recent call last):
  File "/casa/host/build/python/brainvisa/processing/qt4gui/neuroProcessesGUI.py", line 3643, in showProcess
    process = brainvisa.processes.getProcessInstance(process_id)
  File "/casa/host/build/python/brainvisa/processes.py", line 4751, in getProcessInstance
    result = result()
  File "/casa/host/build/python/brainvisa/processing/capsul_process.py", line 428, in __init__
    super().__init__()
  File "/casa/host/build/python/brainvisa/processes.py", line 1498, in __init__
    Parameterized.__init__(self, self.signature.shallowCopy())
  File "/casa/host/build/python/brainvisa/processes.py", line 808, in __init__
    self.initialization()
  File "/casa/host/build/python/brainvisa/processing/capsul_process.py", line 507, in initialization
    metadata.generate_paths()
  File "/casa/host/src/capsul/master/capsul/dataset.py", line 1167, in generate_paths
    proc_meta = executable.metadata_schemas.get(schema)
  File "/casa/host/build/python/soma/controller/controller.py", line 539, in __getattr__
    raise AttributeError(
AttributeError: <class 'capsul.pipeline.pipeline.CustomPipeline'> object has no attribute 'metadata_schemas'

(in this particular case a Json-defined pipeline is used, see https://github.com/neurospin/highres-cortex/pull/15 for the full context)

denisri commented 9 months ago

Does this problem still exist ?

ylep commented 9 months ago

It seems to still be an issue:

Traceback (most recent call last):
  File "/casa/host/build/python/brainvisa/processing/qt4gui/neuroProcessesGUI.py", line 3646, in showProcess
    process = brainvisa.processes.getProcessInstance(process_id)
  File "/casa/host/build/python/brainvisa/processes.py", line 4752, in getProcessInstance
    result = result()
  File "/casa/host/build/python/brainvisa/processing/capsul_process.py", line 445, in __init__
    super().__init__()
  File "/casa/host/build/python/brainvisa/processes.py", line 1499, in __init__
    Parameterized.__init__(self, self.signature.shallowCopy())
  File "/casa/host/build/python/brainvisa/processes.py", line 809, in __init__
    self.initialization()
  File "/casa/host/build/python/brainvisa/processing/capsul_process.py", line 541, in initialization
    parameter = make_parameter(param, name, process, metadata)
  File "/casa/host/build/python/brainvisa/processing/capsul_process.py", line 228, in make_parameter
    newtype, paramoptions = newtype(param, name, process, attributes)
  File "/casa/host/build/python/brainvisa/processing/capsul_process.py", line 166, in fileOptions
    return (ReadDiskItem, get_best_type(process, name, attributes))
  File "/casa/host/build/python/brainvisa/processing/capsul_process.py", line 387, in get_best_type
    path = metadata.path_for_parameter(process, param)
  File "/casa/host/src/capsul/master/capsul/dataset.py", line 1282, in path_for_parameter
    proc_meta = executable.metadata_schemas.get(schema)
  File "/casa/host/build/python/soma/controller/controller.py", line 539, in __getattr__
    raise AttributeError(
AttributeError: <class 'highres_cortex.capsul.processes.Laplacian'> object has no attribute 'metadata_schemas'