include-dcc / include-linkml

LinkML Schema for INCLUDE DCC
https://include-dcc.github.io/include-linkml/
MIT License
3 stars 4 forks source link

problem in some permissible_value? #49

Open turbomam opened 1 year ago

turbomam commented 1 year ago

@putmantime , I'm trying to acquaint myself with this repo in order to check out the linkml2sheets problems you mentioned on the Monarch LinkML Slack channel yesterday

After cloning and running poetry install, I did make all

poetry run gen-project \
  -d project src/linkml/include_linkml.yaml && mv project/*.py src/include_linkml/datamodel

ALL_SCHEMAS = ['src/linkml/include_linkml.yaml'] INFO:root:Generating: graphql INFO:root: SCHEMA: src/linkml/include_linkml.yaml INFO:root: PARENT=project/graphql Traceback (most recent call last): File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/bin/gen-project", line 8, in sys.exit(cli()) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/click/core.py", line 1128, in call return self.main(args, kwargs) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/click/core.py", line 1053, in main rv = self.invoke(ctx) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/click/core.py", line 1395, in invoke return ctx.invoke(self.callback, ctx.params) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/click/core.py", line 754, in invoke return __callback(args, kwargs) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml/generators/projectgen.py", line 197, in cli gen.generate(yamlfile, project_config) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml/generators/projectgen.py", line 112, in generate gen = gen_cls(local_path, all_gen_args) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml/generators/graphqlgen.py", line 18, in init super().init(schema, kwargs) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml/utils/generator.py", line 93, in init loader = SchemaLoader(schema, self.base_dir, useuris=useuris, importmap=importmap, logger=self.logger, File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml/utils/schemaloader.py", line 52, in init self.schema = load_raw_schema(data, base_dir=base_dir, merge_modules=mergeimports, File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml/utils/rawloader.py", line 69, in load_raw_schema schema = yaml_loader.load(copy.deepcopy(data) if isinstance(data, dict) else data, File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/loaders/loader_root.py", line 85, in load results = self.load_any(args, kwargs) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/loaders/yaml_loader.py", line 25, in load_any return self.load_source(source, loader, target_class, accept_header="text/yaml, application/yaml;q=0.9", File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/loaders/loader_root.py", line 66, in load_source return target_class(data_as_dict) File "", line 58, in init File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/linkml_model/meta.py", line 447, in post_init self._normalize_inlined_as_dict(slot_name="enums", slot_type=EnumDefinition, key_name="name", keyed=True) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/utils/yamlutils.py", line 100, in _normalize_inlined_as_dict self._normalize_inlined(slot_name, slot_type, key_name, keyed, False) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/utils/yamlutils.py", line 200, in _normalize_inlined form_1({k: v}) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/utils/yamlutils.py", line 153, in form_1 order_up(key, slot_type(**as_dict(raw_obj))) File "", line 40, in init__ File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/linkml_model/meta.py", line 764, in post_init__ self._normalize_inlined_as_dict(slot_name="permissible_values", slot_type=PermissibleValue, key_name="text", keyed=True) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/utils/yamlutils.py", line 100, in _normalize_inlined_as_dict self._normalize_inlined(slot_name, slot_type, key_name, keyed, False) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/utils/yamlutils.py", line 200, in _normalize_inlined form_1({k: v}) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/utils/yamlutils.py", line 153, in form_1 order_up(key, slot_type(**as_dict(raw_obj))) File "/Users/MAM/Library/Caches/pypoetry/virtualenvs/linkml-project-template-nsNn_beL-py3.9/lib/python3.9/site-packages/linkml_runtime/utils/yamlutils.py", line 127, in order_up raise ValueError( ValueError: Slot: permissible_values - attribute text value (File "", line 29, col 15: list) does not match key (List) make: [gen-project] Error 1

turbomam commented 1 year ago

gen-linkml returns a similar error

gen-linkml src/linkml/include_linkml.yaml

ValueError: Slot: permissible_values - attribute text value (File "", line 29, col 15: list) does not match key (List)

matching the case of the text to the PV's key gets make all to complete

permissible_values:
  List:
    text: list
putmantime commented 1 year ago

Thanks Mark, sorry for confusion, I had fixed that locally, thought it was in main but it wasn't.

Even with that fix made I am still getting

include-linkml git:(main) ✗ linkml2sheets -s src/linkml/include_linkml.yaml  src/data/sheets/*.tsv -d src/data/sheets --overwrite
Traceback (most recent call last):
  File "/Users/putmanti/Library/Caches/pypoetry/virtualenvs/linkml-poetry-gp-template-AkzsagWH-py3.9/bin/linkml2sheets", line 8, in <module>
    sys.exit(export_schema())
  File "/Users/putmanti/Library/Caches/pypoetry/virtualenvs/linkml-poetry-gp-template-AkzsagWH-py3.9/lib/python3.9/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/Users/putmanti/Library/Caches/pypoetry/virtualenvs/linkml-poetry-gp-template-AkzsagWH-py3.9/lib/python3.9/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/Users/putmanti/Library/Caches/pypoetry/virtualenvs/linkml-poetry-gp-template-AkzsagWH-py3.9/lib/python3.9/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/putmanti/Library/Caches/pypoetry/virtualenvs/linkml-poetry-gp-template-AkzsagWH-py3.9/lib/python3.9/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/Users/putmanti/Library/Caches/pypoetry/virtualenvs/linkml-poetry-gp-template-AkzsagWH-py3.9/lib/python3.9/site-packages/schemasheets/schema_exporter.py", line 297, in export_schema
    exporter.export(sv, specification=f, to_file=outpath)
  File "/Users/putmanti/Library/Caches/pypoetry/virtualenvs/linkml-poetry-gp-template-AkzsagWH-py3.9/lib/python3.9/site-packages/schemasheets/schema_exporter.py", line 90, in export
    writer.writerow(row)
  File "/usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/csv.py", line 154, in writerow
    return self.writer.writerow(self._dict_to_list(rowdict))
  File "/usr/local/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/csv.py", line 149, in _dict_to_list
    raise ValueError("dict contains fields not in fieldnames: "
ValueError: dict contains fields not in fieldnames: 'desc', 'slot'

desc and slot are column headers in a sheet tsv src/data/sheets/INCLUDE_Portal_V1_LinkML_Schema_Classes_Slots.tsv

cmungall commented 1 year ago

note you don't need to include text at all, you can just say:

  permissible_values:
    List:
    ...