pepkit / peppy

Project metadata manager for PEPs in Python
https://pep.databio.org/peppy
BSD 2-Clause "Simplified" License
37 stars 13 forks source link

Request: Enable local reference for pep_version YAML-file #433

Closed KuechlerO closed 1 year ago

KuechlerO commented 1 year ago

Hello guys,

thank you for developing PEP! I find it super cool.

I encountered a problem, which I already posted here https://github.com/pepkit/eido/issues/52. However, this brought me to the idea to locally reference the YAML-file defining the PEP-configuration-file instead of just writing pep_version= 2.1.0 when setting-up PEP.

Is it possible to reference such a YAML-file locally? And if not, then I would like to kindly request for such a solution :D

KuechlerO commented 1 year ago

Ok, I think I figured it out myself:

For the PEP configuration-file:

  1. I thought the pep_version attribute would be the important one. But it seems, these is just for the sake of documentation!?! So this attribute has no effect on the loaded PEP schema.
  2. The attribute imports makes the difference. Thus, the following is possible (choose either online or local reference):
    imports:
    # - http://schema.databio.org/pep/2.1.0.yaml
    - pep/2.1.0.yaml

In my case I use the snakemake framework to set-up my pipeline. The documentation for using PEP with it is here. So there I have in my Snakefile:

pepfile: "pep/pep_config.yaml"
pepschema: "pep/pep_schema_config.yaml"

while then in the pepschema I have:

description: Schema for the PEP-based configuration file of this project

# Firstly import basic schema, which covers basic PEP requirements
# Then import schemas for respective sub-projects
imports:
  # - http://schema.databio.org/pep/2.1.0.yaml
  - pep/2.1.0.yaml

In hope this might help other people who are as easily confused as I am ;)