pyobo 0.12.0__tar.gz → 0.12.0.dev0__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 (208) hide show
  1. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/PKG-INFO +19 -16
  2. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/README.md +13 -10
  3. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/pyproject.toml +20 -7
  4. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/.DS_Store +0 -0
  5. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/__init__.py +3 -1
  6. pyobo-0.12.0.dev0/src/pyobo/_reference_tmp.py +35 -0
  7. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/alts.py +1 -2
  8. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/combine.py +1 -2
  9. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/edges.py +1 -1
  10. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/hierarchy.py +15 -109
  11. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/names.py +9 -10
  12. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/properties.py +1 -1
  13. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/utils.py +4 -5
  14. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/xrefs.py +17 -24
  15. pyobo-0.12.0.dev0/src/pyobo/aws.py +163 -0
  16. pyobo-0.12.0.dev0/src/pyobo/cli/aws.py +47 -0
  17. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/cli/cli.py +5 -36
  18. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/cli/database_utils.py +2 -2
  19. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/constants.py +1 -0
  20. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/getters.py +1 -8
  21. pyobo-0.12.0/src/pyobo/identifier_utils/api.py → pyobo-0.12.0.dev0/src/pyobo/identifier_utils.py +31 -24
  22. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/ner/__init__.py +0 -2
  23. pyobo-0.12.0.dev0/src/pyobo/ner/normalizer.py +226 -0
  24. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/obographs.py +21 -16
  25. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/reader.py +2 -3
  26. pyobo-0.12.0.dev0/src/pyobo/registries/__init__.py +16 -0
  27. pyobo-0.12.0.dev0/src/pyobo/registries/metaregistry.json +626 -0
  28. pyobo-0.12.0.dev0/src/pyobo/registries/metaregistry.py +169 -0
  29. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/__init__.py +2 -6
  30. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/bigg/bigg_metabolite.py +19 -74
  31. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/bigg/bigg_reaction.py +1 -7
  32. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/chembl/chembl_target.py +8 -16
  33. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/clinicaltrials.py +2 -4
  34. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/drugcentral.py +4 -13
  35. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/msigdb.py +1 -10
  36. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/nlm/utils.py +2 -13
  37. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pharmgkb/pharmgkb_chemical.py +1 -5
  38. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/ror.py +3 -10
  39. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/signor/signor_complexes.py +0 -2
  40. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/slm.py +4 -5
  41. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/reference.py +4 -4
  42. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/struct.py +29 -18
  43. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/version.py +1 -1
  44. pyobo-0.12.0/src/pyobo/identifier_utils/__init__.py +0 -41
  45. pyobo-0.12.0/src/pyobo/identifier_utils/model.py +0 -130
  46. pyobo-0.12.0/src/pyobo/identifier_utils/preprocessing.json +0 -812
  47. pyobo-0.12.0/src/pyobo/identifier_utils/preprocessing.py +0 -61
  48. pyobo-0.12.0/src/pyobo/identifier_utils/relations/__init__.py +0 -8
  49. pyobo-0.12.0/src/pyobo/identifier_utils/relations/api.py +0 -162
  50. pyobo-0.12.0/src/pyobo/identifier_utils/relations/data.json +0 -5824
  51. pyobo-0.12.0/src/pyobo/identifier_utils/relations/data_owl.json +0 -57
  52. pyobo-0.12.0/src/pyobo/identifier_utils/relations/data_rdf.json +0 -1
  53. pyobo-0.12.0/src/pyobo/identifier_utils/relations/data_rdfs.json +0 -7
  54. pyobo-0.12.0/src/pyobo/ner/normalizer.py +0 -33
  55. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/LICENSE +0 -0
  56. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/__main__.py +0 -0
  57. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/__init__.py +0 -0
  58. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/metadata.py +0 -0
  59. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/relations.py +0 -0
  60. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/species.py +0 -0
  61. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/api/typedefs.py +0 -0
  62. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/cli/__init__.py +0 -0
  63. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/cli/database.py +0 -0
  64. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/cli/lookup.py +0 -0
  65. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/cli/utils.py +0 -0
  66. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/gilda_utils.py +0 -0
  67. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/mocks.py +0 -0
  68. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/ner/api.py +0 -0
  69. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/plugins.py +0 -0
  70. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/py.typed +0 -0
  71. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/reader_utils.py +0 -0
  72. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resource_utils.py +0 -0
  73. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/__init__.py +0 -0
  74. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/goc.py +0 -0
  75. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/goc.tsv +0 -0
  76. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/ncbitaxon.py +0 -0
  77. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/ncbitaxon.tsv.gz +0 -0
  78. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/ro.py +0 -0
  79. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/ro.tsv +0 -0
  80. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/so.py +0 -0
  81. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/resources/so.tsv +0 -0
  82. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/README.md +0 -0
  83. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/agrovoc.py +0 -0
  84. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/antibodyregistry.py +0 -0
  85. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/bigg/__init__.py +0 -0
  86. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/bigg/bigg_compartment.py +0 -0
  87. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/bigg/bigg_model.py +0 -0
  88. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/biogrid.py +0 -0
  89. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/ccle.py +0 -0
  90. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/cgnc.py +0 -0
  91. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/chebi.py +0 -0
  92. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/chembl/__init__.py +0 -0
  93. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/chembl/chembl_compound.py +0 -0
  94. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/civic_gene.py +0 -0
  95. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/complexportal.py +0 -0
  96. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/conso.py +0 -0
  97. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/cpt.py +0 -0
  98. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/credit.py +0 -0
  99. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/cvx.py +0 -0
  100. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/depmap.py +0 -0
  101. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/dictybase_gene.py +0 -0
  102. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/drugbank/__init__.py +0 -0
  103. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/drugbank/drugbank.py +0 -0
  104. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/drugbank/drugbank_salt.py +0 -0
  105. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/expasy.py +0 -0
  106. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/famplex.py +0 -0
  107. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/flybase.py +0 -0
  108. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/gard.py +0 -0
  109. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/geonames/__init__.py +0 -0
  110. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/geonames/features.py +0 -0
  111. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/geonames/geonames.py +0 -0
  112. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/geonames/utils.py +0 -0
  113. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/gmt_utils.py +0 -0
  114. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/go.py +0 -0
  115. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/gtdb.py +0 -0
  116. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/gwascentral/__init__.py +0 -0
  117. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/gwascentral/gwascentral_phenotype.py +0 -0
  118. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/gwascentral/gwascentral_study.py +0 -0
  119. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/hgnc/__init__.py +0 -0
  120. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/hgnc/hgnc.py +0 -0
  121. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/hgnc/hgncgenefamily.py +0 -0
  122. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/icd/__init__.py +0 -0
  123. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/icd/icd10.py +0 -0
  124. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/icd/icd11.py +0 -0
  125. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/icd/icd_utils.py +0 -0
  126. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/interpro.py +0 -0
  127. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/itis.py +0 -0
  128. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/kegg/__init__.py +0 -0
  129. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/kegg/api.py +0 -0
  130. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/kegg/genes.py +0 -0
  131. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/kegg/genome.py +0 -0
  132. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/kegg/pathway.py +0 -0
  133. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/mesh.py +0 -0
  134. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/mgi.py +0 -0
  135. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/mirbase/__init__.py +0 -0
  136. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/mirbase/mirbase.py +0 -0
  137. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/mirbase/mirbase_constants.py +0 -0
  138. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/mirbase/mirbase_family.py +0 -0
  139. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/mirbase/mirbase_mature.py +0 -0
  140. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/ncbi/__init__.py +0 -0
  141. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/ncbi/ncbi_gc.py +0 -0
  142. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/ncbi/ncbigene.py +0 -0
  143. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/nih_reporter.py +0 -0
  144. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/nlm/__init__.py +0 -0
  145. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/nlm/nlm_catalog.py +0 -0
  146. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/nlm/nlm_publisher.py +0 -0
  147. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/npass.py +0 -0
  148. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/omim_ps.py +0 -0
  149. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pathbank.py +0 -0
  150. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pfam/__init__.py +0 -0
  151. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pfam/pfam.py +0 -0
  152. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pfam/pfam_clan.py +0 -0
  153. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pharmgkb/__init__.py +0 -0
  154. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pharmgkb/pharmgkb_disease.py +0 -0
  155. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pharmgkb/pharmgkb_gene.py +0 -0
  156. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pharmgkb/pharmgkb_pathway.py +0 -0
  157. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pharmgkb/pharmgkb_variant.py +0 -0
  158. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pharmgkb/utils.py +0 -0
  159. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pid.py +0 -0
  160. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pombase.py +0 -0
  161. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/pubchem.py +0 -0
  162. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/reactome.py +0 -0
  163. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/rgd.py +0 -0
  164. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/rhea.py +0 -0
  165. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/selventa/__init__.py +0 -0
  166. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/selventa/schem.py +0 -0
  167. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/selventa/scomp.py +0 -0
  168. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/selventa/sdis.py +0 -0
  169. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/selventa/sfam.py +0 -0
  170. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/sgd.py +0 -0
  171. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/signor/__init__.py +0 -0
  172. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/signor/download.py +0 -0
  173. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/umls/__init__.py +0 -0
  174. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/umls/__main__.py +0 -0
  175. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/umls/get_synonym_types.py +0 -0
  176. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/umls/sty.py +0 -0
  177. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/umls/synonym_types.tsv +0 -0
  178. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/umls/umls.py +0 -0
  179. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/unimod.py +0 -0
  180. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/uniprot/__init__.py +0 -0
  181. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/uniprot/uniprot.py +0 -0
  182. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/uniprot/uniprot_ptm.py +0 -0
  183. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/utils.py +0 -0
  184. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/wikipathways.py +0 -0
  185. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/sources/zfin.py +0 -0
  186. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/ssg/__init__.py +0 -0
  187. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/ssg/base.html +0 -0
  188. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/ssg/index.html +0 -0
  189. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/ssg/term.html +0 -0
  190. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/ssg/typedef.html +0 -0
  191. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/__init__.py +0 -0
  192. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/functional/__init__.py +0 -0
  193. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/functional/dsl.py +0 -0
  194. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/functional/macros.py +0 -0
  195. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/functional/obo_to_functional.py +0 -0
  196. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/functional/ontology.py +0 -0
  197. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/functional/utils.py +0 -0
  198. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/struct_utils.py +0 -0
  199. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/typedef.py +0 -0
  200. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/utils.py +0 -0
  201. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/struct/vocabulary.py +0 -0
  202. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/utils/__init__.py +0 -0
  203. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/utils/cache.py +0 -0
  204. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/utils/io.py +0 -0
  205. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/utils/iter.py +0 -0
  206. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/utils/misc.py +0 -0
  207. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/utils/ndex_utils.py +0 -0
  208. {pyobo-0.12.0 → pyobo-0.12.0.dev0}/src/pyobo/utils/path.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobo
3
- Version: 0.12.0
3
+ Version: 0.12.0.dev0
4
4
  Summary: A python package for handling and generating OBO
5
5
  Keywords: snekpack,cookiecutter,ontologies,biomedical ontologies,life sciences,natural sciences,bioinformatics,cheminformatics,Open Biomedical Ontologies,OBO
6
6
  Author: Charles Tapley Hoyt
@@ -38,14 +38,14 @@ Requires-Dist: tabulate
38
38
  Requires-Dist: cachier
39
39
  Requires-Dist: pystow>=0.7.0
40
40
  Requires-Dist: bioversions>=0.7.0
41
- Requires-Dist: bioregistry>=0.12.7
42
- Requires-Dist: bioontologies>=0.7.1
43
- Requires-Dist: ssslm>=0.0.13
41
+ Requires-Dist: bioregistry>=0.12.0
42
+ Requires-Dist: bioontologies>=0.5.2
43
+ Requires-Dist: ssslm>=0.0.9
44
44
  Requires-Dist: zenodo-client>=0.3.6
45
- Requires-Dist: class-resolver>=0.6.0
45
+ Requires-Dist: class-resolver
46
46
  Requires-Dist: psycopg2-binary
47
47
  Requires-Dist: pydantic>=2.0
48
- Requires-Dist: curies>=0.10.10
48
+ Requires-Dist: curies>=0.10.6
49
49
  Requires-Dist: python-dateutil
50
50
  Requires-Dist: networkx>=3.4
51
51
  Requires-Dist: drugbank-downloader
@@ -222,14 +222,16 @@ it up and its preferred label.
222
222
  ```python
223
223
  import pyobo
224
224
 
225
- reference = pyobo.ground('chebi', 'Fusilade II')
226
- assert reference.prefix == 'chebi'
227
- assert reference.identifier == '132964'
228
- assert reference.name == 'fluazifop-P-butyl'
225
+ prefix, identifier, name = pyobo.ground('chebi', 'Fusilade II')
226
+ assert prefix == 'chebi'
227
+ assert identifier == '132964'
228
+ assert name == 'fluazifop-P-butyl'
229
229
 
230
230
  # When failure happens...
231
- reference = pyobo.ground('chebi', 'Definitely not a real name')
232
- assert reference is None
231
+ prefix, identifier, name = pyobo.ground('chebi', 'Definitely not a real name')
232
+ assert prefix is None
233
+ assert identifier is None
234
+ assert name is None
233
235
  ```
234
236
 
235
237
  If you're not really sure which namespace a name might belong to, you can try a
@@ -240,10 +242,10 @@ false positives in case of conflicts):
240
242
  import pyobo
241
243
 
242
244
  # looking for phenotypes/pathways
243
- reference = pyobo.ground(['efo', 'go'], 'ERAD')
244
- assert reference.prefix == 'go'
245
- assert reference.identifier == '0030433'
246
- assert reference.name == 'ubiquitin-dependent ERAD pathway'
245
+ prefix, identifier, name = pyobo.ground(['efo', 'go'], 'ERAD')
246
+ assert prefix == 'go'
247
+ assert identifier == '0030433'
248
+ assert name == 'ubiquitin-dependent ERAD pathway'
247
249
  ```
248
250
 
249
251
  ### Cross-referencing
@@ -466,6 +468,7 @@ The most recent release can be installed from
466
468
  [PyPI](https://pypi.org/project/pyobo/) with uv:
467
469
 
468
470
  ```console
471
+ python3 -m pip install pyobo
469
472
  $ uv pip install pyobo
470
473
  ```
471
474
 
@@ -143,14 +143,16 @@ it up and its preferred label.
143
143
  ```python
144
144
  import pyobo
145
145
 
146
- reference = pyobo.ground('chebi', 'Fusilade II')
147
- assert reference.prefix == 'chebi'
148
- assert reference.identifier == '132964'
149
- assert reference.name == 'fluazifop-P-butyl'
146
+ prefix, identifier, name = pyobo.ground('chebi', 'Fusilade II')
147
+ assert prefix == 'chebi'
148
+ assert identifier == '132964'
149
+ assert name == 'fluazifop-P-butyl'
150
150
 
151
151
  # When failure happens...
152
- reference = pyobo.ground('chebi', 'Definitely not a real name')
153
- assert reference is None
152
+ prefix, identifier, name = pyobo.ground('chebi', 'Definitely not a real name')
153
+ assert prefix is None
154
+ assert identifier is None
155
+ assert name is None
154
156
  ```
155
157
 
156
158
  If you're not really sure which namespace a name might belong to, you can try a
@@ -161,10 +163,10 @@ false positives in case of conflicts):
161
163
  import pyobo
162
164
 
163
165
  # looking for phenotypes/pathways
164
- reference = pyobo.ground(['efo', 'go'], 'ERAD')
165
- assert reference.prefix == 'go'
166
- assert reference.identifier == '0030433'
167
- assert reference.name == 'ubiquitin-dependent ERAD pathway'
166
+ prefix, identifier, name = pyobo.ground(['efo', 'go'], 'ERAD')
167
+ assert prefix == 'go'
168
+ assert identifier == '0030433'
169
+ assert name == 'ubiquitin-dependent ERAD pathway'
168
170
  ```
169
171
 
170
172
  ### Cross-referencing
@@ -387,6 +389,7 @@ The most recent release can be installed from
387
389
  [PyPI](https://pypi.org/project/pyobo/) with uv:
388
390
 
389
391
  ```console
392
+ python3 -m pip install pyobo
390
393
  $ uv pip install pyobo
391
394
  ```
392
395
 
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "pyobo"
7
- version = "0.12.0"
7
+ version = "0.12.0-dev"
8
8
  description = "A python package for handling and generating OBO"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -71,14 +71,14 @@ dependencies = [
71
71
  "cachier",
72
72
  "pystow>=0.7.0",
73
73
  "bioversions>=0.7.0",
74
- "bioregistry>=0.12.7",
75
- "bioontologies>=0.7.1",
76
- "ssslm>=0.0.13",
74
+ "bioregistry>=0.12.0",
75
+ "bioontologies>=0.5.2",
76
+ "ssslm>=0.0.9",
77
77
  "zenodo-client>=0.3.6",
78
- "class_resolver>=0.6.0",
78
+ "class_resolver",
79
79
  "psycopg2-binary",
80
80
  "pydantic>=2.0",
81
- "curies>=0.10.10",
81
+ "curies>=0.10.6",
82
82
  "python-dateutil",
83
83
  "networkx>=3.4",
84
84
  # Resource Downloaders
@@ -121,6 +121,19 @@ Funding = "https://github.com/sponsors/cthoyt"
121
121
  [project.scripts]
122
122
  pyobo = "pyobo.cli:main"
123
123
 
124
+ # TODO add entrypoints
125
+ # pyobo.xrefs =
126
+ # cbms2019 = pyobo.xrefdb.sources.cbms2019:get_cbms2019_xrefs_df
127
+ # chembl = pyobo.xrefdb.sources.chembl:get_chembl_xrefs_df
128
+ # compath = pyobo.xrefdb.sources.compath:get_compath_xrefs_df
129
+ # famplex = pyobo.xrefdb.sources.famplex:get_famplex_xrefs_df
130
+ # gilda = pyobo.xrefdb.sources.gilda:get_gilda_xrefs_df
131
+ # intact = pyobo.xrefdb.sources.intact:get_xrefs_df
132
+ # ncit = pyobo.xrefdb.sources.ncit:get_ncit_xrefs_df
133
+ # pubchem = pyobo.xrefdb.sources.pubchem:get_pubchem_mesh_df
134
+ # wikidata = pyobo.xrefdb.sources.wikidata:get_wikidata_xrefs_df
135
+ # biomappings = pyobo.xrefdb.sources.biomappings:get_biomappings_df
136
+
124
137
  [tool.cruft]
125
138
  skip = [
126
139
  "**/__init__.py",
@@ -240,7 +253,7 @@ known-first-party = [
240
253
  docstring-code-format = true
241
254
 
242
255
  [tool.bumpversion]
243
- current_version = "0.12.0"
256
+ current_version = "0.12.0-dev"
244
257
  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-]+)*))?"
245
258
  serialize = [
246
259
  "{major}.{minor}.{patch}-{release}+{build}",
@@ -56,7 +56,8 @@ from .api import (
56
56
  is_descendent,
57
57
  )
58
58
  from .getters import get_ontology
59
- from .ner import get_grounder, ground
59
+ from .ner import get_grounder
60
+ from .ner.normalizer import OboNormalizer, ground
60
61
  from .obographs import parse_results_from_obo
61
62
  from .plugins import (
62
63
  has_nomenclature_plugin,
@@ -70,6 +71,7 @@ from .version import get_version
70
71
 
71
72
  __all__ = [
72
73
  "Obo",
74
+ "OboNormalizer",
73
75
  "Reference",
74
76
  "Synonym",
75
77
  "SynonymTypeDef",
@@ -0,0 +1,35 @@
1
+ """A temporary place for the Reference class until it's upstreamed."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import bioregistry
6
+ import curies
7
+ from curies.api import ExpansionError
8
+ from pydantic import model_validator
9
+
10
+ from .constants import GLOBAL_CHECK_IDS
11
+
12
+ __all__ = [
13
+ "Reference",
14
+ ]
15
+
16
+
17
+ class Reference(curies.NamableReference):
18
+ """A namespace, identifier, and label."""
19
+
20
+ @model_validator(mode="before")
21
+ def validate_identifier(cls, values): # noqa
22
+ """Validate the identifier."""
23
+ prefix, identifier = values.get("prefix"), values.get("identifier")
24
+ if not prefix or not identifier:
25
+ return values
26
+ resource = bioregistry.get_resource(prefix)
27
+ if resource is None:
28
+ raise ExpansionError(f"Unknown prefix: {prefix}")
29
+ values["prefix"] = resource.prefix
30
+ if " " in identifier:
31
+ raise ValueError(f"[{prefix}] space in identifier: {identifier}")
32
+ values["identifier"] = resource.standardize_identifier(identifier)
33
+ if GLOBAL_CHECK_IDS and not resource.is_valid_identifier(values["identifier"]):
34
+ raise ValueError(f"non-standard identifier: {resource.prefix}:{values['identifier']}")
35
+ return values
@@ -5,7 +5,6 @@ from collections.abc import Mapping
5
5
  from functools import lru_cache
6
6
 
7
7
  import curies
8
- from pydantic import ValidationError
9
8
  from typing_extensions import Unpack
10
9
 
11
10
  from .utils import _get_pi, get_version_from_kwargs
@@ -71,7 +70,7 @@ def get_primary_curie(
71
70
  reference = _get_pi(prefix, identifier)
72
71
  try:
73
72
  primary_identifier = get_primary_identifier(reference, **kwargs)
74
- except (ValueError, ValidationError):
73
+ except ValueError:
75
74
  if kwargs.get("strict"):
76
75
  raise
77
76
  # this happens on invalid prefix. maybe revise?
@@ -9,7 +9,6 @@ from typing_extensions import Unpack
9
9
  from pyobo.api.hierarchy import get_descendants
10
10
  from pyobo.api.names import get_literal_mappings
11
11
  from pyobo.constants import GetOntologyKwargs
12
- from pyobo.struct import Reference
13
12
 
14
13
  __all__ = [
15
14
  "get_literal_mappings_subset",
@@ -27,7 +26,7 @@ def get_literal_mappings_subset(
27
26
  if isinstance(ancestors, curies.Reference):
28
27
  ancestors = [ancestors]
29
28
 
30
- subset: set[Reference] = {
29
+ subset: set[curies.Reference] = {
31
30
  descendant
32
31
  for ancestor in ancestors
33
32
  for descendant in get_descendants(ancestor, **kwargs) or []
@@ -2,6 +2,7 @@
2
2
 
3
3
  import networkx as nx
4
4
  import pandas as pd
5
+ from curies import Reference
5
6
  from tqdm import tqdm
6
7
  from typing_extensions import Unpack
7
8
 
@@ -15,7 +16,6 @@ from pyobo.constants import (
15
16
  )
16
17
  from pyobo.getters import get_ontology
17
18
 
18
- from ..struct import Reference
19
19
  from ..utils.cache import cached_df
20
20
  from ..utils.path import CacheArtifact, get_cache_path
21
21
 
@@ -1,14 +1,12 @@
1
1
  """High-level API for hierarchies."""
2
2
 
3
3
  import logging
4
- import warnings
5
4
  from collections.abc import Iterable
6
5
  from functools import lru_cache
7
- from typing import overload
8
6
 
9
7
  import networkx as nx
10
8
  from curies import ReferenceTuple
11
- from typing_extensions import NotRequired, Unpack
9
+ from typing_extensions import Unpack
12
10
 
13
11
  from .edges import get_edges
14
12
  from .names import get_name, get_references
@@ -35,8 +33,8 @@ logger = logging.getLogger(__name__)
35
33
  class HierarchyKwargs(GetOntologyKwargs):
36
34
  """Keyword argument hints for hierarchy getter functions."""
37
35
 
38
- include_part_of: NotRequired[bool]
39
- include_has_member: NotRequired[bool]
36
+ include_part_of: bool
37
+ include_has_member: bool
40
38
 
41
39
 
42
40
  def get_hierarchy(
@@ -124,63 +122,22 @@ def _get_predicate_sets(
124
122
  return predicates, reverse_predicates
125
123
 
126
124
 
127
- # docstr-coverage:excused `overload`
128
- @overload
129
125
  def is_descendent(
130
126
  prefix: str,
131
127
  identifier: str,
132
- ancestor_prefix: str = ...,
133
- ancestor_identifier: str = ...,
134
- /,
135
- **kwargs: Unpack[HierarchyKwargs],
136
- ) -> bool: ...
137
-
138
-
139
- # docstr-coverage:excused `overload`
140
- @overload
141
- def is_descendent(
142
- descendant: Reference,
143
- ancestor: Reference,
144
- _1: None = ...,
145
- _2: None = ...,
146
- /,
147
- **kwargs: Unpack[HierarchyKwargs],
148
- ) -> bool: ...
149
-
150
-
151
- def is_descendent(
152
- prefix: str | Reference,
153
- identifier: str | Reference,
154
- ancestor_prefix: str | None = None,
155
- ancestor_identifier: str | None = None,
156
- /,
128
+ ancestor_prefix: str,
129
+ ancestor_identifier: str,
157
130
  **kwargs: Unpack[HierarchyKwargs],
158
131
  ) -> bool:
159
132
  """Check that the first identifier has the second as a descendent.
160
133
 
161
- :param prefix: The prefix for the descendant
162
- :param identifier: The local unique identifier for the descendant
163
- :param ancestor_prefix: The prefix for the ancestor
164
- :param ancestor_identifier: The local unique identifier for the ancestor
165
- :param kwargs: Keyword arguments for :func:`get_hierarchy`
166
- :return: If the decendant has the given ancestor
167
-
168
- Check that ``GO:0070246`` (natural killer cell apoptotic process) is a descendant of
169
- ``GO:0006915`` (apoptotic process)
170
-
171
- >>> nk_apoptosis = Reference.from_curie(
172
- ... "GO:0070246", name="natural killer cell apoptotic process"
173
- ... )
174
- >>> apoptosis = Reference.from_curie("GO:0006915", name="apoptotic process")
175
- >>> assert is_descendent(nk_apoptosis, apoptosis)
176
-
177
- Using deprecated old-style arguments:
134
+ Check that go:0070246 ! natural killer cell apoptotic process is a descendant of
135
+ go:0006915 ! apoptotic process
178
136
 
179
137
  >>> assert is_descendent("go", "0070246", "go", "0006915")
180
138
  """
181
- descendant, ancestor = _get_double_reference(
182
- prefix, identifier, ancestor_prefix, ancestor_identifier
183
- )
139
+ ancestor = Reference(prefix=ancestor_prefix, identifier=ancestor_identifier)
140
+ descendant = Reference(prefix=prefix, identifier=identifier)
184
141
  descendants = get_descendants(ancestor, **kwargs)
185
142
  return descendants is not None and descendant in descendants
186
143
 
@@ -215,77 +172,26 @@ def get_children(
215
172
  return set(hierarchy.predecessors(t))
216
173
 
217
174
 
218
- # docstr-coverage:excused `overload`
219
- @overload
220
175
  def has_ancestor(
221
176
  prefix: str,
222
177
  identifier: str,
223
- ancestor_prefix: str = ...,
224
- ancestor_identifier: str = ...,
225
- /,
226
- **kwargs: Unpack[HierarchyKwargs],
227
- ) -> bool: ...
228
-
229
-
230
- # docstr-coverage:excused `overload`
231
- @overload
232
- def has_ancestor(
233
- descendant: Reference,
234
- ancestor: Reference,
235
- _1: None = ...,
236
- _2: None = ...,
237
- /,
238
- **kwargs: Unpack[HierarchyKwargs],
239
- ) -> bool: ...
240
-
241
-
242
- def has_ancestor(
243
- prefix: str | Reference,
244
- identifier: str | Reference,
245
- ancestor_prefix: str | None = None,
246
- ancestor_identifier: str | None = None,
247
- /,
178
+ ancestor_prefix: str,
179
+ ancestor_identifier: str,
248
180
  **kwargs: Unpack[HierarchyKwargs],
249
181
  ) -> bool:
250
182
  """Check that the first identifier has the second as an ancestor.
251
183
 
252
- :param prefix: The prefix for the descendant
253
- :param identifier: The local unique identifier for the descendant
254
- :param ancestor_prefix: The prefix for the ancestor
255
- :param ancestor_identifier: The local unique identifier for the ancestor
256
- :param kwargs: Keyword arguments for :func:`get_hierarchy`
257
- :return: If the decendant has the given ancestor
258
-
259
- Check that ``GO:0008219`` (cell death) is an ancestor of ``GO:0006915``
260
- (apoptotic process):
261
-
262
- >>> apoptosis = Reference.from_curie("GO:0006915", name="apoptotic process")
263
- >>> cell_death = Reference.from_curie("GO:0008219", name="cell death")
264
- >>> assert has_ancestor(apoptosis, cell_death)
265
-
266
- The same, using the deprecated argumentation style:
184
+ Check that go:0008219 ! cell death is an ancestor of go:0006915 ! apoptotic
185
+ process
267
186
 
268
187
  >>> assert has_ancestor("go", "0006915", "go", "0008219")
269
188
  """
270
- descendant, ancestor = _get_double_reference(
271
- prefix, identifier, ancestor_prefix, ancestor_identifier
272
- )
189
+ ancestor = Reference(prefix=ancestor_prefix, identifier=ancestor_identifier)
190
+ descendant = Reference(prefix=prefix, identifier=identifier)
273
191
  ancestors = get_ancestors(descendant, **kwargs)
274
192
  return ancestors is not None and ancestor in ancestors
275
193
 
276
194
 
277
- def _get_double_reference(
278
- a: str | Reference, b: str | Reference, c: str | None, d: str | None
279
- ) -> tuple[Reference, Reference]:
280
- if isinstance(a, Reference) and isinstance(b, Reference):
281
- return a, b
282
- elif all(isinstance(x, str) for x in (a, b, c, d)):
283
- warnings.warn("passing strings is deprecated", DeprecationWarning, stacklevel=2)
284
- return Reference(prefix=a, identifier=b), Reference(prefix=c, identifier=d)
285
- else:
286
- raise TypeError
287
-
288
-
289
195
  @lru_cache
290
196
  def get_ancestors(
291
197
  prefix: str | Reference | ReferenceTuple,
@@ -8,9 +8,9 @@ from collections.abc import Callable, Mapping
8
8
  from functools import lru_cache
9
9
  from typing import Any, TypeVar
10
10
 
11
- import curies
12
11
  import pandas as pd
13
12
  import ssslm
13
+ from curies import Reference, ReferenceTuple
14
14
  from pystow.cache import Cached
15
15
  from ssslm import LiteralMapping
16
16
  from typing_extensions import Unpack
@@ -24,7 +24,6 @@ from ..constants import (
24
24
  )
25
25
  from ..getters import NoBuildError, get_ontology
26
26
  from ..identifier_utils import wrap_norm_prefix
27
- from ..struct import Reference
28
27
  from ..utils.cache import cached_collection, cached_df, cached_mapping
29
28
  from ..utils.io import multidict
30
29
  from ..utils.path import CacheArtifact, get_cache_path
@@ -62,7 +61,7 @@ NO_BUILD_LOGGED: set = set()
62
61
 
63
62
  def _help_get(
64
63
  f: Callable[[str, Unpack[GetOntologyKwargs]], Mapping[str, X]],
65
- reference: Reference,
64
+ reference: ReferenceTuple,
66
65
  **kwargs: Unpack[GetOntologyKwargs],
67
66
  ) -> X | None:
68
67
  """Get the result for an entity based on a mapping maker function ``f``."""
@@ -92,14 +91,14 @@ def _help_get(
92
91
 
93
92
 
94
93
  def get_name(
95
- prefix: str | curies.Reference | curies.ReferenceTuple,
94
+ prefix: str | Reference | ReferenceTuple,
96
95
  identifier: str | None = None,
97
96
  /,
98
97
  **kwargs: Unpack[GetOntologyKwargs],
99
98
  ) -> str | None:
100
99
  """Get the name for an entity."""
101
100
  reference = _get_pi(prefix, identifier)
102
- return _help_get(get_id_name_mapping, reference, **kwargs)
101
+ return _help_get(get_id_name_mapping, reference.pair, **kwargs)
103
102
 
104
103
 
105
104
  @lru_cache
@@ -219,14 +218,14 @@ def get_name_id_mapping(
219
218
 
220
219
 
221
220
  def get_definition(
222
- prefix: str | curies.Reference | curies.ReferenceTuple,
221
+ prefix: str | Reference | ReferenceTuple,
223
222
  identifier: str | None = None,
224
223
  /,
225
224
  **kwargs: Unpack[GetOntologyKwargs],
226
225
  ) -> str | None:
227
226
  """Get the definition for an entity."""
228
227
  reference = _get_pi(prefix, identifier)
229
- return _help_get(get_id_definition_mapping, reference, **kwargs)
228
+ return _help_get(get_id_definition_mapping, reference.pair, **kwargs)
230
229
 
231
230
 
232
231
  def get_id_definition_mapping(
@@ -281,14 +280,14 @@ def get_obsolete_references(prefix: str, **kwargs: Unpack[GetOntologyKwargs]) ->
281
280
 
282
281
 
283
282
  def get_synonyms(
284
- prefix: str | curies.Reference | curies.ReferenceTuple,
283
+ prefix: str | Reference | ReferenceTuple,
285
284
  identifier: str | None = None,
286
285
  /,
287
286
  **kwargs: Unpack[GetOntologyKwargs],
288
287
  ) -> list[str] | None:
289
288
  """Get the synonyms for an entity."""
290
289
  reference = _get_pi(prefix, identifier)
291
- return _help_get(get_id_synonyms_mapping, reference, **kwargs)
290
+ return _help_get(get_id_synonyms_mapping, reference.pair, **kwargs)
292
291
 
293
292
 
294
293
  @wrap_norm_prefix
@@ -311,7 +310,7 @@ def get_literal_mappings(
311
310
  ) -> list[LiteralMapping]:
312
311
  """Get literal mappings."""
313
312
  df = get_literal_mappings_df(prefix=prefix, **kwargs)
314
- rv = ssslm.df_to_literal_mappings(df, reference_cls=Reference)
313
+ rv = ssslm.df_to_literal_mappings(df)
315
314
  if skip_obsolete:
316
315
  obsoletes = get_obsolete_references(prefix, **kwargs)
317
316
  rv = [lm for lm in rv if lm.reference not in obsoletes]
@@ -4,6 +4,7 @@ import logging
4
4
  from collections.abc import Mapping
5
5
 
6
6
  import pandas as pd
7
+ from curies import Reference
7
8
  from tqdm import tqdm
8
9
  from typing_extensions import Unpack
9
10
 
@@ -16,7 +17,6 @@ from ..constants import (
16
17
  )
17
18
  from ..getters import get_ontology
18
19
  from ..identifier_utils import wrap_norm_prefix
19
- from ..struct import Reference
20
20
  from ..struct.struct_utils import OBOLiteral, ReferenceHint, _ensure_ref
21
21
  from ..utils.cache import cached_df
22
22
  from ..utils.io import multidict
@@ -9,7 +9,6 @@ from typing import Literal, overload
9
9
 
10
10
  import bioversions
11
11
  import curies
12
- from bioregistry import NormalizedNamableReference as Reference
13
12
  from curies import ReferenceTuple
14
13
 
15
14
  from ..constants import GetOntologyKwargs
@@ -138,13 +137,13 @@ def get_version_pins() -> dict[str, str]:
138
137
 
139
138
  def _get_pi(
140
139
  prefix: str | curies.Reference | ReferenceTuple, identifier: str | None = None, /
141
- ) -> Reference:
140
+ ) -> curies.Reference:
142
141
  if isinstance(prefix, ReferenceTuple | curies.Reference):
143
142
  if identifier is not None:
144
143
  raise ValueError("unexpected non-none value passed as second positional argument")
145
- return Reference(prefix=prefix.prefix, identifier=prefix.identifier)
144
+ return curies.Reference(prefix=prefix.prefix, identifier=prefix.identifier)
146
145
  if isinstance(prefix, str) and identifier is None:
147
- return Reference.from_curie(prefix)
146
+ return curies.Reference.from_curie(prefix)
148
147
  if identifier is None:
149
148
  raise ValueError(
150
149
  "prefix was given as a string, so an identifier was expected to be passed as a string as well"
@@ -154,4 +153,4 @@ def _get_pi(
154
153
  DeprecationWarning,
155
154
  stacklevel=4, # this is 4 since this is (always?) called from inside a decorator
156
155
  )
157
- return Reference(prefix=prefix, identifier=identifier)
156
+ return curies.Reference(prefix=prefix, identifier=identifier)