Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create minimal per-class slot reporter; compare to exisiting LinkML, NMDC and MIxS scripts #811

Open
turbomam opened this issue Jul 2, 2024 · 6 comments · May be fixed by #812
Open

Create minimal per-class slot reporter; compare to exisiting LinkML, NMDC and MIxS scripts #811

turbomam opened this issue Jul 2, 2024 · 6 comments · May be fixed by #812
Assignees

Comments

@turbomam
Copy link
Member

turbomam commented Jul 2, 2024

I suspect that this overlaps with a lot of existing issues, along the lines of "make it easy for people to find release artifacts"

@turbomam turbomam self-assigned this Jul 2, 2024
@turbomam
Copy link
Member Author

turbomam commented Jul 2, 2024

Starting by generating Markdown documentation for all of the scripts in src/scripts. Using ChatGPT 4.

@turbomam
Copy link
Member Author

turbomam commented Jul 2, 2024

find . -name "*.py" | sort
./src/mixs/datamodel/mixs.py
./src/mixs/_version.py

./src/scripts/camel_case_enums.py
./src/scripts/combinations_list_generator.py
./src/scripts/enumerations_list_generator.py
./src/scripts/extension_distances.py
./src/scripts/extension_slot_diffrences.py

./src/scripts/__init__.py

./src/scripts/isolate_slots.py
./src/scripts/mixs_slots_report.py
./src/scripts/organize_excel_files.py
./src/scripts/term_list_generator.py

./tests/__init__.py
./tests/test_data.py

@turbomam
Copy link
Member Author

turbomam commented Jul 2, 2024

I moved some of those scripts to an inactive directory

src/scripts/isolate_slots.py is derrived from output of linkml2schemasheets-template and comes closest to generating a tabular representation of the schema, but it creates one global slot report, and we want per-class slot reports, showing the induced slot usage.

(I don't think we have determined what takes precedent yet, when a class has a is_a parent and uses mixins.)

@turbomam
Copy link
Member Author

turbomam commented Jul 2, 2024

I am inclined to read the schema into a SchemaView, iterate over the in-scope classes, and report selected properties of the induced slots/attributes.

  • What's in scope?
  • Which properties? How to discover? Will need special handling for annotations

@cmungall would prefer that this kind of thing is developed in a LinkML repo, but the turnaround is slower. So develop with in a generalizable way with good coding practices so that it can eventually be moved into LinkML

I don't think the stock linkml2sheets will work here either.

@turbomam
Copy link
Member Author

turbomam commented Jul 2, 2024

from @pbuttigieg: generate the reports in a dev path and then move them to a root path upon release, like ODK does

@turbomam
Copy link
Member Author

turbomam commented Jul 2, 2024

This could be backported to older releases. but the reports for previous releases wouldn't be bundled cumulatively with each new release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant