bioregistry 0.13.11__tar.gz → 0.13.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. {bioregistry-0.13.11 → bioregistry-0.13.12}/PKG-INFO +1 -1
  2. {bioregistry-0.13.11 → bioregistry-0.13.12}/pyproject.toml +2 -2
  3. bioregistry-0.13.12/src/bioregistry/.DS_Store +0 -0
  4. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/__init__.py +2 -0
  5. bioregistry-0.13.12/src/bioregistry/app/.DS_Store +0 -0
  6. bioregistry-0.13.12/src/bioregistry/app/templates/.DS_Store +0 -0
  7. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/base.html +6 -0
  8. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/collection.html +13 -6
  9. bioregistry-0.13.12/src/bioregistry/app/templates/resource-bibliometrics.html +79 -0
  10. bioregistry-0.13.12/src/bioregistry/app/templates/resource-standards.html +89 -0
  11. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/resource.html +10 -177
  12. bioregistry-0.13.12/src/bioregistry/curation/.DS_Store +0 -0
  13. bioregistry-0.13.12/src/bioregistry/curation/add_linkml.py +89 -0
  14. bioregistry-0.13.12/src/bioregistry/curation/add_nfdi_section_collections.py +60 -0
  15. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/bioregistry.json +39 -0
  16. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/collections.json +518 -7
  17. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/curated_papers.tsv +1 -0
  18. bioregistry-0.13.12/src/bioregistry/external/.DS_Store +0 -0
  19. bioregistry-0.13.12/src/bioregistry/external/miriam/.DS_Store +0 -0
  20. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/resource_manager.py +4 -0
  21. bioregistry-0.13.12/src/bioregistry/schema/.DS_Store +0 -0
  22. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/schema/schema.json +21 -1
  23. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/schema/struct.py +9 -1
  24. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/schema_utils.py +6 -1
  25. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/validate/cli.py +16 -0
  26. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/validate/utils.py +28 -1
  27. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/version.py +1 -1
  28. {bioregistry-0.13.11 → bioregistry-0.13.12}/LICENSE +0 -0
  29. {bioregistry-0.13.11 → bioregistry-0.13.12}/README.md +0 -0
  30. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/__main__.py +0 -0
  31. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/analysis/__init__.py +0 -0
  32. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/analysis/bioregistry_diff.py +0 -0
  33. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/analysis/mapping_checking.py +0 -0
  34. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/analysis/paper_ranking.py +0 -0
  35. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/__init__.py +0 -0
  36. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/api.py +0 -0
  37. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/cli.py +0 -0
  38. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/constants.py +0 -0
  39. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/impl.py +0 -0
  40. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/proxies.py +0 -0
  41. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/czi.svg +0 -0
  42. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/dalia.png +0 -0
  43. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/dfg.svg +0 -0
  44. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/funding-manifest-urls.txt +0 -0
  45. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/logo.svg +0 -0
  46. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/nfdi4chem.svg +0 -0
  47. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/northeastern.svg +0 -0
  48. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/static/rwth-iac.svg +0 -0
  49. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/collections.html +0 -0
  50. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/context.html +0 -0
  51. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/contexts.html +0 -0
  52. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/contributor.html +0 -0
  53. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/contributors.html +0 -0
  54. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/highlights/owners.html +0 -0
  55. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/highlights/relations.html +0 -0
  56. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/highlights/twitter.html +0 -0
  57. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/home.html +0 -0
  58. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/keyword.html +0 -0
  59. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/keywords.html +0 -0
  60. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/macros.html +0 -0
  61. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/meta/access.html +0 -0
  62. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/meta/acknowledgements.html +0 -0
  63. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/meta/download.html +0 -0
  64. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/meta/related.html +0 -0
  65. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/meta/schema.html +0 -0
  66. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/meta/summary.html +0 -0
  67. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/meta/sustainability.html +0 -0
  68. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/metaresource.html +0 -0
  69. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/metaresources.html +0 -0
  70. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/prose.html +0 -0
  71. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/reference.html +0 -0
  72. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/resolve_errors/disallowed_identifier.html +0 -0
  73. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/resolve_errors/invalid_identifier.html +0 -0
  74. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/resolve_errors/missing_prefix.html +0 -0
  75. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/resolve_errors/missing_providers.html +0 -0
  76. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/templates/resources.html +0 -0
  77. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/test.py +0 -0
  78. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/ui.py +0 -0
  79. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/utils.py +0 -0
  80. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/app/wsgi.py +0 -0
  81. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/benchmarks/__init__.py +0 -0
  82. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/benchmarks/__main__.py +0 -0
  83. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/benchmarks/cli.py +0 -0
  84. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/benchmarks/curie_parsing.py +0 -0
  85. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/benchmarks/curie_validation.py +0 -0
  86. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/benchmarks/uri_parsing.py +0 -0
  87. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/bibliometrics.py +0 -0
  88. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/cli.py +0 -0
  89. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/collection_api.py +0 -0
  90. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/compare.py +0 -0
  91. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/constants.py +0 -0
  92. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/__init__.py +0 -0
  93. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_cessda.py +0 -0
  94. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_co_providers.py +0 -0
  95. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_descriptions_from_gs.py +0 -0
  96. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_examples.py +0 -0
  97. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_examples_from_ols.py +0 -0
  98. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_ontology_regexes.py +0 -0
  99. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_provider_status_curations.py +0 -0
  100. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_sweet.py +0 -0
  101. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/add_wikidata_database.py +0 -0
  102. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/bulk_import.py +0 -0
  103. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/clean_licenses.py +0 -0
  104. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/clean_name_suffixes.py +0 -0
  105. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/clean_publications.py +0 -0
  106. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/cleanup_authors.py +0 -0
  107. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/deprecation_diff.py +0 -0
  108. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/enrich_publications.py +0 -0
  109. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/find_contact_groups.py +0 -0
  110. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/fix_obo_purls.py +0 -0
  111. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/import_pc_semiautomatic.py +0 -0
  112. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/ingest_prefixmaps_bioportal.py +0 -0
  113. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/literature.py +0 -0
  114. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/make_description_curation_sheet.py +0 -0
  115. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/make_health_report_curation_sheet.py +0 -0
  116. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/map_bartoc_via_wikidata.py +0 -0
  117. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/map_re3data_via_fairsharing.py +0 -0
  118. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/nfdi_collections.py +0 -0
  119. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/odk_usage.py +0 -0
  120. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/rename_metaprefix.py +0 -0
  121. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/review_pc.py +0 -0
  122. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/seed_collection.py +0 -0
  123. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/suggest_author_curation.py +0 -0
  124. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/curation/suggest_uniprot_providers.py +0 -0
  125. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/README.md +0 -0
  126. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/__init__.py +0 -0
  127. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/contexts.json +0 -0
  128. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/curated_mappings.sssom.tsv +0 -0
  129. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/data/metaregistry.json +0 -0
  130. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/__init__.py +0 -0
  131. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/__main__.py +0 -0
  132. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/cli.py +0 -0
  133. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/prefix_maps.py +0 -0
  134. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/prefixcc.py +0 -0
  135. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/rdf_export.py +0 -0
  136. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/schema_export.py +0 -0
  137. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/sssom_export.py +0 -0
  138. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/tables_export.py +0 -0
  139. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/tsv_export.py +0 -0
  140. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/warnings_export.py +0 -0
  141. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/export/yaml_export.py +0 -0
  142. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/__init__.py +0 -0
  143. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/aberowl/__init__.py +0 -0
  144. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/aberowl/processed.json +0 -0
  145. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/align.py +0 -0
  146. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/alignment_utils.py +0 -0
  147. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bartoc/__init__.py +0 -0
  148. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bartoc/processed.json +0 -0
  149. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/biocontext/__init__.py +0 -0
  150. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/biocontext/processed.json +0 -0
  151. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/biolink/__init__.py +0 -0
  152. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/biolink/processed.json +0 -0
  153. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/biolink/processing_biolink.json +0 -0
  154. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bioportal/__init__.py +0 -0
  155. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bioportal/agroportal.json +0 -0
  156. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bioportal/agroportal.py +0 -0
  157. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bioportal/bioportal.json +0 -0
  158. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bioportal/bioportal.py +0 -0
  159. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bioportal/ecoportal.json +0 -0
  160. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/bioportal/ecoportal.py +0 -0
  161. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/cellosaurus/__init__.py +0 -0
  162. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/cellosaurus/processed.json +0 -0
  163. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/cheminf/__init__.py +0 -0
  164. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/cheminf/processed.json +0 -0
  165. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/cropoct/__init__.py +0 -0
  166. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/cropoct/processed.json +0 -0
  167. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/edam/__init__.py +0 -0
  168. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/edam/processed.json +0 -0
  169. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/fairsharing/__init__.py +0 -0
  170. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/fairsharing/processed.json +0 -0
  171. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/go/__init__.py +0 -0
  172. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/go/processed.json +0 -0
  173. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/go/processing_go.json +0 -0
  174. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/hl7/OID_Report.csv +0 -0
  175. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/hl7/__init__.py +0 -0
  176. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/integbio/__init__.py +0 -0
  177. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/integbio/processed.json +0 -0
  178. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/lov/__init__.py +0 -0
  179. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/lov/processed.json +0 -0
  180. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/miriam/__init__.py +0 -0
  181. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/miriam/processed.json +0 -0
  182. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/n2t/__init__.py +0 -0
  183. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/n2t/processed.json +0 -0
  184. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ncbi/__init__.py +0 -0
  185. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ncbi/processed.json +0 -0
  186. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/obofoundry/__init__.py +0 -0
  187. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/obofoundry/processed.json +0 -0
  188. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ols/__init__.py +0 -0
  189. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ols/processed.json +0 -0
  190. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ols/processing_ols.json +0 -0
  191. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ols/tib-processed.json +0 -0
  192. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ols/tib-processing-config.json +0 -0
  193. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ols/tib.py +0 -0
  194. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ontobee/__init__.py +0 -0
  195. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/ontobee/processed.json +0 -0
  196. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/pathguide/__init__.py +0 -0
  197. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/prefixcommons/__init__.py +0 -0
  198. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/prefixcommons/processed.json +0 -0
  199. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/re3data/__init__.py +0 -0
  200. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/re3data/processed.json +0 -0
  201. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/rrid/__init__.py +0 -0
  202. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/togoid/__init__.py +0 -0
  203. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/togoid/processed.json +0 -0
  204. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/uniprot/__init__.py +0 -0
  205. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/uniprot/processed.json +0 -0
  206. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/wikidata/__init__.py +0 -0
  207. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/wikidata/processed.json +0 -0
  208. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/zazuko/__init__.py +0 -0
  209. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/external/zazuko/processed.json +0 -0
  210. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/gh/__init__.py +0 -0
  211. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/gh/github_client.py +0 -0
  212. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/gh/new_prefix.py +0 -0
  213. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/health/__init__.py +0 -0
  214. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/health/__main__.py +0 -0
  215. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/health/check_homepages.py +0 -0
  216. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/health/check_providers.py +0 -0
  217. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/health/cli.py +0 -0
  218. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/license_standardizer.py +0 -0
  219. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/lint.py +0 -0
  220. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/metaresource_api.py +0 -0
  221. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/pandas.py +0 -0
  222. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/parse_iri.py +0 -0
  223. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/parse_version_iri.py +0 -0
  224. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/py.typed +0 -0
  225. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/record_accumulator.py +0 -0
  226. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/reference.py +0 -0
  227. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/resolve.py +0 -0
  228. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/resolve_identifier.py +0 -0
  229. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/schema/__init__.py +0 -0
  230. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/schema/constants.py +0 -0
  231. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/schema/utils.py +0 -0
  232. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/summary.py +0 -0
  233. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/upload_ndex.py +0 -0
  234. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/uri_format.py +0 -0
  235. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/utils.py +0 -0
  236. {bioregistry-0.13.11 → bioregistry-0.13.12}/src/bioregistry/validate/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bioregistry
3
- Version: 0.13.11
3
+ Version: 0.13.12
4
4
  Summary: Integrated registry of biological databases and nomenclatures
5
5
  Keywords: snekpack,cookiecutter,databases,biological databases,biomedical databases,persistent identifiers
6
6
  Author: Charles Tapley Hoyt
@@ -10,7 +10,7 @@ markers = [
10
10
 
11
11
  [project]
12
12
  name = "bioregistry"
13
- version = "0.13.11"
13
+ version = "0.13.12"
14
14
  description = "Integrated registry of biological databases and nomenclatures"
15
15
  readme = "README.md"
16
16
  authors = [
@@ -254,7 +254,7 @@ known-first-party = [
254
254
  docstring-code-format = true
255
255
 
256
256
  [tool.bumpversion]
257
- current_version = "0.13.11"
257
+ current_version = "0.13.12"
258
258
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)(?:-(?P<release>[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?(?:\\+(?P<build>[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?"
259
259
  serialize = [
260
260
  "{major}.{minor}.{patch}-{release}+{build}",
@@ -131,6 +131,7 @@ from .schema import (
131
131
  Author,
132
132
  Collection,
133
133
  Context,
134
+ Organization,
134
135
  Provider,
135
136
  Registry,
136
137
  Resource,
@@ -164,6 +165,7 @@ __all__ = [
164
165
  "NormalizedNamableReference",
165
166
  "NormalizedNamedReference",
166
167
  "NormalizedReference",
168
+ "Organization",
167
169
  "Provider",
168
170
  "Registry",
169
171
  "Resource",
@@ -37,6 +37,12 @@
37
37
  padding-bottom: 2em;
38
38
  background-color: #f5f5f5;
39
39
  }
40
+ dl {
41
+ margin-bottom: 0;
42
+ }
43
+ dl dd:last-child {
44
+ margin-bottom: 0;
45
+ }
40
46
  </style>
41
47
  {% endblock %}
42
48
 
@@ -42,14 +42,21 @@
42
42
  <dt>Identifier</dt>
43
43
  <dd><code>{{ identifier }}</code></dd>
44
44
  <dt>Contributors</dt>
45
- <dd>
46
- {% for author in entry.authors %}
45
+ {%- for author in entry.authors %}
46
+ <dd style="margin-bottom: 0;">
47
47
  <a href="{{ url_for("metaregistry_ui.contributor", orcid=author.orcid) }}">
48
48
  {{ author.name }}
49
49
  <i class="fab fa-orcid"></i>
50
- </a>{% if not loop.last %}, {% endif %}
51
- {% endfor %}
52
- </dd>
50
+ </a>
51
+ </dd>
52
+ {%- endfor %}
53
+ {%- if entry.organizations %}
54
+ {%- for organization in entry.organizations %}
55
+ <dd style="margin-bottom: 0;">
56
+ <a href="{{ organization.link }}">{{ organization.name }}</a>
57
+ </dd>
58
+ {%- endfor %}
59
+ {%- endif %}
53
60
  <dt>Size</dt>
54
61
  <dd>{{ entry.resources | length }}</dd>
55
62
  {% if entry.references %}
@@ -60,7 +67,7 @@
60
67
  {% endif %}
61
68
  </dl>
62
69
  </div>
63
- <table class="table table-striped">
70
+ <table class="table table-striped" style="margin-bottom: 0;">
64
71
  <thead>
65
72
  <tr>
66
73
  <th scope="col">Prefix</th>
@@ -0,0 +1,79 @@
1
+ <div class="card" style="margin-top: 20px">
2
+ <h5 class="card-header">Contacts</h5>
3
+ <div class="card-body">
4
+ {%- if resource.contact_group_email %}
5
+ <a class="badge badge-pill badge-light" href="{{ resource.contact_group_email }}">
6
+ Mailing List <i class="fas fa-address-book"></i></i></a>
7
+ {%- endif %}
8
+ {%- if resource.contact_page %}
9
+ <a class="badge badge-pill badge-light" href="{{ resource.contact_page }}">
10
+ Contact Page <i class="fas fa-address-book"></i></i></a>
11
+ {%- endif %}
12
+ <dl>
13
+ <dt>
14
+ Contact
15
+ {% if contact %}
16
+ <a type="button" data-toggle="modal" data-target="#contact-modal">
17
+ <i class="far fa-question-circle"></i>
18
+ </a>
19
+ {% endif %}
20
+ </dt>
21
+ <dd>
22
+ {% if contact %}
23
+ {{ utils.render_author(contact, link=none) }}
24
+ {% else %}
25
+ <span class="badge badge-pill badge-warning">Missing Contact</span>
26
+ {% endif %}
27
+ </dd>
28
+ {%- for secondary_contact in resource.contact_extras or [] %}
29
+ <dd>
30
+ {{ utils.render_author(secondary_contact, link=none) }}
31
+ </dd>
32
+ {%- endfor %}
33
+
34
+ {% if resource.owners %}
35
+ <dt>Identifier Space Owner{% if resource.owners | length > 1 %}s{% endif %}</dt>
36
+ {% for owner in resource.owners %}
37
+ <dd>
38
+ <a href="{{ owner.link }}">{{ owner.name }}</a>
39
+ {% if owner.partnered %}
40
+ <a href="{{ config.METAREGISTRY_REPOSITORY }}/blob/main/docs/GOVERNANCE.md#partners"
41
+ class="badge badge-pill badge-info" data-toggle="tooltip"
42
+ title="This organization has partnered with the {{ config.METAREGISTRY_TITLE }} to proactively maintain this record. Click to see related project governance.">
43
+ Partnered
44
+ </a>
45
+ {% endif %}
46
+ </dd>
47
+ {% endfor %}
48
+ {% endif %}
49
+ {% if resource.contributor or resource.contributor_extras %}
50
+ <dt>Contributors</dt>
51
+ {% if resource.contributor %}
52
+ <dd>
53
+ <span class="badge badge-info">submitter</span> {{ utils.render_author(resource.contributor,
54
+ link=url_for('metaregistry_ui.contributor', orcid=resource.contributor.orcid)) }}
55
+ </dd>
56
+ {% endif %}
57
+ {% for contributor in resource.contributor_extras or [] %}
58
+ <dd>
59
+ <span class="badge badge-info">contributor</span> {{ utils.render_author(contributor,
60
+ link=url_for('metaregistry_ui.contributor', orcid=contributor.orcid)) }}
61
+ </dd>
62
+ {% endfor %}
63
+ {% endif %}
64
+
65
+ {% if resource.reviewer %}
66
+ <dt>Reviewer</dt>
67
+ <dd>
68
+ {{ utils.render_author(resource.reviewer, link=url_for('metaregistry_ui.contributor',
69
+ orcid=resource.reviewer.orcid)) }}
70
+ </dd>
71
+ {%- for reviewer in resource.reviewer_extras or [] %}
72
+ <dd>
73
+ {{ utils.render_author(reviewer, link=url_for('metaregistry_ui.contributor', orcid=reviewer.orcid)) }}
74
+ </dd>
75
+ {%- endfor %}
76
+ {% endif %}
77
+ </dl>
78
+ </div>
79
+ </div>
@@ -0,0 +1,89 @@
1
+ <div class="card" style="margin-top: 20px">
2
+ <h5 class="card-header">Identifier Standards</h5>
3
+ <div class="card-body">
4
+ <dl>
5
+ <dt>Pattern for Local Unique Identifiers</dt>
6
+ <dd>
7
+ {% if pattern %}
8
+ <p>
9
+ Local identifiers in {{ name_pack.value }} should match this
10
+ regular expression:<br/><kbd>{{ pattern }}</kbd>
11
+ </p>
12
+ {% elif has_no_terms %}
13
+ <span class="badge badge-pill badge-secondary">No terms in {{ prefix }}</span>
14
+ {% else %}
15
+ <span class="badge badge-pill badge-warning">Missing LUI pattern</span>
16
+ {% endif %}
17
+ </dd>
18
+ <dt>Example Local Unique Identifier{% if resource.example_extras %}s{% endif %}</dt>
19
+ <dd>
20
+ {% if example %}
21
+ <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=example) }}">{{ example
22
+ }}</a>
23
+ {% if providers %}
24
+ &nbsp;
25
+ <a class="badge badge-pill badge-info" href="{{ url_for("metaregistry_ui.resolve", prefix=prefix,
26
+ identifier=example) }}"><i class="fas fa-share-square"></i> Resolve</a>
27
+ {% endif %}
28
+ {% for extra_example in example_extras %}
29
+ <br/>
30
+ <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=extra_example) }}">{{
31
+ extra_example }}</a>
32
+ {% if providers %}
33
+ &nbsp;
34
+ <a class="badge badge-pill badge-info" href="{{ url_for("metaregistry_ui.resolve", prefix=prefix,
35
+ identifier=extra_example) }}"><i class="fas fa-share-square"></i> Resolve</a>
36
+ {% endif %}
37
+ {% endfor %}
38
+ {% elif has_no_terms %}
39
+ <span class="badge badge-pill badge-secondary">No Terms in {{ prefix }}</span>
40
+ {% else %}
41
+ <span class="badge badge-pill badge-warning">Missing Example Local Unique Identifier</span>
42
+ {% endif %}
43
+ </dd>
44
+ {% if pattern and curie_pattern %}
45
+ <dt>Pattern for CURIES</dt>
46
+ <dd>
47
+ <p>
48
+ Compact URIs (CURIEs) constructed from {{ name_pack.value }} should match
49
+ this regular expression:<br/><kbd>{{ curie_pattern }}</kbd>
50
+ </p>
51
+ </dd>
52
+ {% endif %}
53
+ {% if example and example_curie %}
54
+ <dt>Example CURIE{% if resource.example_extras %}s{% endif %}</dt>
55
+ <dd>
56
+ <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=example) }}">{{
57
+ example_curie }}</a>
58
+ {% for example_curie_extra, example_extra in zip(example_curie_extras, example_extras) %}
59
+ <br/>
60
+ <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=example_extra) }}">{{
61
+ example_curie_extra }}</a>
62
+ {% endfor %}
63
+ </dd>
64
+ {% endif %}
65
+ {% if resource.get_rdf_uri_format() %}
66
+ <dt>Pattern for RDF URIs</dt>
67
+ <dd><kbd>{{ resource.get_rdf_uri_format() }}</kbd></dd>
68
+ <dt>Example RDF URI</dt>
69
+ {% set rdf_uri_example = resource.get_rdf_uri_format().replace("$1", example) %}
70
+ <dd><a href="{{ rdf_uri_example }}">{{ rdf_uri_example }}</a></dd>
71
+ {% endif %}
72
+ {% if namespace_in_lui %}
73
+ <dt><i class="fas fa-info-circle"></i> MIRIAM Namespace Embedded in LUI</dt>
74
+ <dd>
75
+ The legacy MIRIAM standard for generating CURIEs with this resource
76
+ annotates the <code>namespaceEmbeddedInLUI</code> as true.
77
+ {{ get_banana_text() }}
78
+ </dd>
79
+ {% elif banana %}
80
+ <dt><i class="fas fa-info-circle"></i> Namespace Embedded in LUI</dt>
81
+ <dd>
82
+ This resource has been annotated by the {{ config.METAREGISTRY_TITLE }} as having a potential
83
+ namespace embedded in LUI.
84
+ {{ get_banana_text() }}
85
+ </dd>
86
+ {% endif %}
87
+ </dl>
88
+ </div>
89
+ </div>
@@ -189,14 +189,6 @@
189
189
  Repository <i class="fab fa-github"></i>
190
190
  </a>
191
191
  {% endif %}
192
- {%- if resource.contact_group_email %}
193
- <a class="badge badge-pill badge-light" href="{{ resource.contact_group_email }}">
194
- Mailing List <i class="fas fa-address-book"></i></i></a>
195
- {%- endif %}
196
- {%- if resource.contact_page %}
197
- <a class="badge badge-pill badge-light" href="{{ resource.contact_page }}">
198
- Contact Page <i class="fas fa-address-book"></i></i></a>
199
- {%- endif %}
200
192
  {% if obo_download %}
201
193
  <a class="badge badge-pill badge-light" href="{{ obo_download }}">
202
194
  OBO <i class="fas fa-download"></i>
@@ -238,173 +230,28 @@
238
230
  </a>
239
231
  {% endif %}
240
232
  </dd>
241
- <dt>
242
- Contact
243
- {% if contact %}
244
- <a type="button" data-toggle="modal" data-target="#contact-modal">
245
- <i class="far fa-question-circle"></i>
246
- </a>
247
- {% endif %}
248
- </dt>
249
- <dd>
250
- {% if contact %}
251
- {{ utils.render_author(contact, link=none) }}
252
- {% else %}
253
- <span class="badge badge-pill badge-warning">Missing Contact</span>
254
- {% endif %}
255
- </dd>
256
- {%- for secondary_contact in resource.contact_extras or [] %}
257
- <dd>
258
- {{ utils.render_author(secondary_contact, link=none) }}
259
- </dd>
260
- {%- endfor %}
261
- {% if resource.owners %}
262
- <dt>Identifier Space Owner{% if resource.owners | length > 1 %}s{% endif %}</dt>
263
- {% for owner in resource.owners %}
264
- <dd>
265
- <a href="{{ owner.link }}">{{ owner.name }}</a>
266
- {% if owner.partnered %}
267
- <a href="{{ config.METAREGISTRY_REPOSITORY }}/blob/main/docs/GOVERNANCE.md#partners"
268
- class="badge badge-pill badge-info" data-toggle="tooltip"
269
- title="This organization has partnered with the {{ config.METAREGISTRY_TITLE }} to proactively maintain this record. Click to see related project governance.">
270
- Partnered
271
- </a>
272
- {% endif %}
273
- </dd>
274
- {% endfor %}
275
- {% endif %}
276
- <dt>Pattern for Local Unique Identifiers</dt>
277
- <dd>
278
- {% if pattern %}
279
- <p>
280
- Local identifiers in {{ name_pack.value }} should match this
281
- regular expression:<br/><kbd>{{ pattern }}</kbd>
282
- </p>
283
- {% elif has_no_terms %}
284
- <span class="badge badge-pill badge-secondary">No terms in {{ prefix }}</span>
285
- {% else %}
286
- <span class="badge badge-pill badge-warning">Missing LUI pattern</span>
287
- {% endif %}
288
- </dd>
289
- <dt>Example Local Unique Identifier{% if resource.example_extras %}s{% endif %}</dt>
290
- <dd>
291
- {% if example %}
292
- <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=example) }}">{{ example }}</a>
293
- {% if providers %}
294
- &nbsp;
295
- <a class="badge badge-pill badge-info" href="{{ url_for("metaregistry_ui.resolve", prefix=prefix, identifier=example) }}"><i class="fas fa-share-square"></i> Resolve</a>
296
- {% endif %}
297
- {% for extra_example in example_extras %}
298
- <br />
299
- <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=extra_example) }}">{{ extra_example }}</a>
300
- {% if providers %}
301
- &nbsp;
302
- <a class="badge badge-pill badge-info" href="{{ url_for("metaregistry_ui.resolve", prefix=prefix, identifier=extra_example) }}"><i class="fas fa-share-square"></i> Resolve</a>
303
- {% endif %}
304
- {% endfor %}
305
- {% elif has_no_terms %}
306
- <span class="badge badge-pill badge-secondary">No Terms in {{ prefix }}</span>
307
- {% else %}
308
- <span class="badge badge-pill badge-warning">Missing Example Local Unique Identifier</span>
309
- {% endif %}
310
- </dd>
311
- {% if pattern and curie_pattern %}
312
- <dt>Pattern for CURIES</dt>
313
- <dd>
314
- <p>
315
- Compact URIs (CURIEs) constructed from {{ name_pack.value }} should match
316
- this regular expression:<br/><kbd>{{ curie_pattern }}</kbd>
317
- </p>
318
- </dd>
319
- {% endif %}
320
- {% if example and example_curie %}
321
- <dt>Example CURIE{% if resource.example_extras %}s{% endif %}</dt>
322
- <dd>
323
- <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=example) }}">{{ example_curie }}</a>
324
- {% for example_curie_extra, example_extra in zip(example_curie_extras, example_extras) %}
325
- <br />
326
- <a href="{{ url_for("metaregistry_ui.reference", prefix=prefix, identifier=example_extra) }}">{{ example_curie_extra }}</a>
327
- {% endfor %}
328
- </dd>
329
- {% endif %}
330
- {% if namespace_in_lui %}
331
- <dt><i class="fas fa-info-circle"></i> MIRIAM Namespace Embedded in LUI</dt>
332
- <dd>
333
- The legacy MIRIAM standard for generating CURIEs with this resource
334
- annotates the <code>namespaceEmbeddedInLUI</code> as true.
335
- {{ get_banana_text() }}
336
- </dd>
337
- {% elif banana %}
338
- <dt><i class="fas fa-info-circle"></i> Namespace Embedded in LUI</dt>
339
- <dd>
340
- This resource has been annotated by the {{ config.METAREGISTRY_TITLE }} as having a potential
341
- namespace embedded in LUI.
342
- {{ get_banana_text() }}
343
- </dd>
344
- {% endif %}
345
233
 
346
234
  {% set publications = resource.get_publications() %}
347
235
  {% if publications %}
348
236
  <dt>Publications</dt>
349
- <dd>
350
- {% if publications | length == 1 %}
351
- {{ utils.render_publication(publications[0]) }}
352
- {% else %}
353
- <ul>
354
- {% for publication in publications %}
355
- <li>{{ utils.render_publication(publication) }}</li>
356
- {% endfor %}
357
- </ul>
358
- {% endif %}
359
- </dd>
237
+ {%- for publication in publications %}
238
+ <dd>{{ utils.render_publication(publication) }}</dd>
239
+ {%- endfor %}
360
240
  {% endif %}
361
241
  {% if resource.references %}
362
242
  <dt>References</dt>
363
- <dd>
364
- {% if resource.references | length == 1 %}
365
- {{ utils.render_reference(resource.references[0]) }}
366
- {% else %}
367
- <ul>
368
- {% for reference in resource.references %}
369
- <li>{{ utils.render_reference(reference) }}</li>
370
- {% endfor %}
371
- </ul>
372
- {% endif %}
373
- </dd>
374
- {% endif %}
375
- {% if resource.contributor or resource.contributor_extras %}
376
- <dt>Contributors</dt>
377
- <dd>
378
- <ul>
379
- {% if resource.contributor %}
380
- <li>
381
- <span class="badge badge-info">submitter</span> {{ utils.render_author(resource.contributor, link=url_for('metaregistry_ui.contributor', orcid=resource.contributor.orcid)) }}
382
- </li>
383
- {% endif %}
384
- {% for contributor in resource.contributor_extras or [] %}
385
- <li>
386
- <span class="badge badge-info">contributor</span> {{ utils.render_author(contributor, link=url_for('metaregistry_ui.contributor', orcid=contributor.orcid)) }}
387
- </li>
388
- {% endfor %}
389
- </ul>
390
- </dd>
391
- {% endif %}
392
- {% if resource.reviewer %}
393
- <dt>Reviewer</dt>
394
- <dd>
395
- {{ utils.render_author(resource.reviewer, link=url_for('metaregistry_ui.contributor', orcid=resource.reviewer.orcid)) }}
396
- </dd>
397
- {%- for reviewer in resource.reviewer_extras or [] %}
398
- <dd>
399
- {{ utils.render_author(reviewer, link=url_for('metaregistry_ui.contributor', orcid=reviewer.orcid)) }}
400
- </dd>
243
+ {%- for reference in resource.references %}
244
+ <dd>{{ utils.render_reference(reference) }}</dd>
401
245
  {%- endfor %}
402
246
  {% endif %}
403
247
  </dl>
404
248
  </div>
405
-
406
249
  </div>
407
250
 
251
+ {% include "resource-standards.html" %}
252
+
253
+ {% include "resource-bibliometrics.html" %}
254
+
408
255
  {% if provides or provided_by or part_of or has_parts or has_canonical or canonical_for or depends_on or appears_in or in_collections %}
409
256
  <div class="card" style="margin-top: 20px">
410
257
  <a id="ontology"></a>
@@ -572,20 +419,6 @@
572
419
  </div>
573
420
  {% endif %}
574
421
 
575
- {% if resource.get_rdf_uri_format() %}
576
- <div class="card" style="margin-top: 20px">
577
- <h5 class="card-header">RDF Information</h5>
578
- <div class="card-body">
579
- <p>
580
- When using this resource in RDF, the following URI format should be used:
581
- </p>
582
- <p>
583
- <code>{{ resource.get_rdf_uri_format() }}</code>
584
- </p>
585
- </div>
586
- </div>
587
- {% endif %}
588
-
589
422
  {% if not resource.no_own_terms %}
590
423
  <div class="card" style="margin-top: 20px">
591
424
  <a id="providers"></a>
@@ -623,7 +456,7 @@
623
456
  {% if providers %}
624
457
  <p>
625
458
  The local unique identifier <code>{{ example }}</code> is used to demonstrate the providers
626
- available for {{ name_pack.value }}. Some providers may use a different example, which is displayed in the table below.
459
+ available for {{ name_pack.value }}. Some providers may use a different example, which is displayed in the table below.
627
460
  A guide for curating additional providers can be found
628
461
  <a href="{{ config.METAREGISTRY_REPOSITORY_PAGES }}/curation/providers">here</a>.
629
462
  </p>
@@ -0,0 +1,89 @@
1
+ """Import a resource from a LinkML configuration.
2
+
3
+ This curation workflow can be called from the command line by passing a URL to a LinkML
4
+ YAML configuration file like in the following:
5
+
6
+ .. code-block:: console
7
+
8
+ $ python -m bioregistry.curation.add_linkml https://github.com/HendrikBorgelt/CatCore/blob/main/src/catcore/schema/catcore.yaml
9
+
10
+ Here are some more example LinkML YAML configuration files:
11
+
12
+ - https://github.com/HendrikBorgelt/CatCore/blob/main/src/catcore/schema/catcore.yaml
13
+ - https://github.com/mapping-commons/sssom/blob/master/src/sssom_schema/schema/sssom_schema.yaml
14
+
15
+ .. warning::
16
+
17
+ This workflow doesn't produce complete Bioregistry records! You still must add:
18
+
19
+ 1. ``homepage``
20
+ 2. ``contributor``
21
+
22
+ Given most LinkML configurations are on GitHub, you can probably figure out:
23
+
24
+ - ``repository``
25
+ - ``contact``
26
+ """
27
+
28
+ import click
29
+ import requests
30
+ import yaml
31
+
32
+ import bioregistry
33
+
34
+ __all__ = [
35
+ "get_resource_from_linkml",
36
+ "import_from_linkml",
37
+ "import_from_linkml_cli",
38
+ ]
39
+
40
+
41
+ def import_from_linkml(url: str) -> None:
42
+ """Get a resource from a LinkML configuration and write it to the registry.
43
+
44
+ :param url: The URL to a LinkML YAML configuration file.
45
+ :returns: A Bioregistry resource object
46
+ """
47
+ resource = get_resource_from_linkml(url)
48
+ bioregistry.manager.add_resource(resource)
49
+ bioregistry.manager.write_registry()
50
+
51
+
52
+ def get_resource_from_linkml(url: str) -> bioregistry.Resource:
53
+ """Get a resource from a LinkML configuration.
54
+
55
+ :param url: The URL to a LinkML YAML configuration file.
56
+ :returns: A Bioregistry resource object
57
+ """
58
+ res = requests.get(url, timeout=5)
59
+ res.raise_for_status()
60
+ data = yaml.safe_load(res.text)
61
+
62
+ prefix = data.pop("default_prefix")
63
+ prefix_map = data.pop("prefixes")
64
+ uri_prefix = prefix_map.pop(prefix)
65
+
66
+ classes = data.pop("classes")
67
+ first_class = next(iter(classes))
68
+
69
+ rv = bioregistry.Resource(
70
+ prefix=prefix,
71
+ name=data.pop("title"),
72
+ description=data.pop("description").replace("\n", " ").replace(" ", " "),
73
+ license=data.pop("license", None),
74
+ uri_format=f"{uri_prefix}$1",
75
+ example=first_class,
76
+ version=data.pop("version", None),
77
+ )
78
+ return rv
79
+
80
+
81
+ @click.command()
82
+ @click.argument("url")
83
+ def import_from_linkml_cli(url: str) -> None:
84
+ """Add a resource from the URL."""
85
+ import_from_linkml(url)
86
+
87
+
88
+ if __name__ == "__main__":
89
+ import_from_linkml_cli()
@@ -0,0 +1,60 @@
1
+ """Summarize NFDI consortia that don't have a collection."""
2
+
3
+ import click
4
+ import wikidata_client
5
+
6
+ import bioregistry
7
+ from bioregistry import Author, Collection, Organization
8
+
9
+ SPARQL = """\
10
+ SELECT ?wikidata ?name ?ror
11
+ WHERE {
12
+ ?wikidata wdt:P361 wd:Q61658497; wdt:P31 wd:Q98270496 ; rdfs:label ?name .
13
+ FILTER (LANG(?name) = 'en')
14
+ OPTIONAL { ?wikidata wdt:P6782 ?ror . }
15
+ }
16
+ """
17
+
18
+
19
+ @click.command()
20
+ def main() -> None:
21
+ """Summarize NFDI consortia that don't have a collection."""
22
+ collections = bioregistry.read_collections()
23
+ max_collection_id = max(map(int, collections))
24
+
25
+ wikidata_client.query(SPARQL)
26
+
27
+ nfdi_organizations = [
28
+ Organization.model_validate(record) for record in wikidata_client.query(SPARQL)
29
+ ]
30
+ wikidata_to_organization: dict[str, Organization] = {
31
+ organization.wikidata: organization
32
+ for organization in nfdi_organizations
33
+ if organization.wikidata
34
+ }
35
+ covered_wikidata: set[str] = {
36
+ organization.wikidata
37
+ for collection in collections.values()
38
+ for organization in collection.organizations or []
39
+ if organization.wikidata
40
+ }
41
+ missing = set(wikidata_to_organization) - covered_wikidata
42
+ if missing:
43
+ nfdi = Organization(name="NFDI", wikidata="Q61658497", ror="05qj6w324")
44
+ for wikidata in sorted(missing):
45
+ organization = wikidata_to_organization[wikidata]
46
+ max_collection_id += 1
47
+ collection = Collection(
48
+ identifier=f"{max_collection_id:07}",
49
+ name=f"{organization.name} Collection",
50
+ description=f"A collection of ontologies, controlled vocabularies, database, and schemas relevant for {organization.name}",
51
+ resources=["bioregistry"],
52
+ authors=[Author.get_charlie()],
53
+ organizations=[organization, nfdi],
54
+ )
55
+ bioregistry.manager.add_collection(collection)
56
+ bioregistry.manager.write_collections()
57
+
58
+
59
+ if __name__ == "__main__":
60
+ main()