pepkit / looper

A job submitter for Portable Encapsulated Projects
http://looper.databio.org
BSD 2-Clause "Simplified" License
20 stars 7 forks source link

input schema fails to validate #521

Closed donaldcampbelljr closed 1 month ago

donaldcampbelljr commented 1 month ago

Using the generic input schema in examples from hello_looper, I get validation issues:

  File "/home/drc/GITHUB/looper/master/looper/venv/lib/python3.10/site-packages/eido/validation.py", line 56, in _validate_object
    raise EidoValidationError("Validation failed", errors_by_type)
eido.exceptions.EidoValidationError: EidoValidationError (Validation failed): {"'pipeline_name' is a required property": [{'type': "'pipeline_name' is a required property", 'message': "'pipeline_name' is a required property on instance project", 'sample_name': 'project'}], "'pipeline_type' is a required property": [{'type': "'pipeline_type' is a required property", 'message': "'pipeline_type' is a required property on instance project", 'sample_name': 'project'}], "'command_template' is a required property": [{'type': "'command_template' is a required property", 'message': "'command_template' is a required property on instance project", 'sample_name': 'project'}]}

Piface is simply pointing to the generic one provided by looper:

pipeline_name: count_lines
output_schema: pipestat_output_schema.yaml
input_schema: /home/drc/GITHUB/looper/master/looper/looper/schemas/pipeline_interface_schema_generic.yaml
sample_interface:
  command_template: >
    python3 {looper.piface_dir}/count_lines.py {sample.file_path} {sample.sample_name} {pipestat.results_file} {pipestat.output_schema}

Probably related to: https://github.com/pepkit/eido/issues/64 https://github.com/databio/bbconf/issues/20

donaldcampbelljr commented 1 month ago

Oh, using a generic PEP schema as input schema works fine: https://schema.databio.org/pep/2.1.0.yaml

Looks like looper validates Pifaces within the PIpelineInterface class and does not rely on Eido for that specifically.