linkml / schemasheets

Structure your data in a FAIR way using google sheets or TSVs. These are then converted to LinkML, and from there other formats
https://linkml.io/schemasheets/
41 stars 5 forks source link

issues with attributes column #128

Closed djarecka closed 4 months ago

djarecka commented 4 months ago

I'm trying to use scheemasheet with attributes, e.g.:

Proposed  Field Class Name
> attributes    class
tissue sample label tissue sample
amplified cDNA label    amplified cdna

and I'm getting error:

Traceback (most recent call last):
  File "/Users/dorota/miniconda3/envs/schemasheets/bin/sheets2linkml", line 8, in <module>
    sys.exit(convert())
             ^^^^^^^^^
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/schemasheets/schemamaker.py", line 651, in convert
    schema = sm.create_schema(list(tsv_files))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/schemasheets/schemamaker.py", line 64, in create_schema
    self.merge_sheet(f, **kwargs)
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/schemasheets/schemamaker.py", line 110, in merge_sheet
    self.add_row(row, schemasheet.table_config)
  File "/Users/dorota/miniconda3/envs/schemasheets/lib/python3.11/site-packages/schemasheets/schemamaker.py", line 152, in add_row
    setattr(actual_element, cc.maps_to, getattr(actual_element, cc.maps_to, []) + v)
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
TypeError: unsupported operand type(s) for +: 'dict' and 'list'

It works if I use slots

djarecka commented 4 months ago

moved to linkml/schemasheets#138