pyobo 0.12.5__tar.gz → 0.12.6__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 (207) hide show
  1. {pyobo-0.12.5 → pyobo-0.12.6}/PKG-INFO +7 -3
  2. {pyobo-0.12.5 → pyobo-0.12.6}/pyproject.toml +11 -4
  3. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/cli/database.py +7 -1
  4. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/api.py +3 -1
  5. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/drugcentral.py +2 -1
  6. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/spdx.py +10 -6
  7. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/struct.py +10 -0
  8. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/utils/misc.py +14 -7
  9. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/version.py +1 -1
  10. {pyobo-0.12.5 → pyobo-0.12.6}/LICENSE +0 -0
  11. {pyobo-0.12.5 → pyobo-0.12.6}/README.md +0 -0
  12. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/.DS_Store +0 -0
  13. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/__init__.py +0 -0
  14. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/__main__.py +0 -0
  15. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/__init__.py +0 -0
  16. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/alts.py +0 -0
  17. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/combine.py +0 -0
  18. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/edges.py +0 -0
  19. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/embedding.py +0 -0
  20. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/hierarchy.py +0 -0
  21. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/metadata.py +0 -0
  22. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/names.py +0 -0
  23. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/properties.py +0 -0
  24. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/relations.py +0 -0
  25. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/species.py +0 -0
  26. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/typedefs.py +0 -0
  27. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/utils.py +0 -0
  28. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/api/xrefs.py +0 -0
  29. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/cli/__init__.py +0 -0
  30. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/cli/cli.py +0 -0
  31. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/cli/database_utils.py +0 -0
  32. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/cli/lookup.py +0 -0
  33. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/cli/utils.py +0 -0
  34. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/constants.py +0 -0
  35. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/getters.py +0 -0
  36. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/gilda_utils.py +0 -0
  37. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/__init__.py +0 -0
  38. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/relations/__init__.py +0 -0
  39. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/relations/api.py +0 -0
  40. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/relations/data.json +0 -0
  41. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/relations/data_owl.json +0 -0
  42. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/relations/data_rdf.json +0 -0
  43. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/identifier_utils/relations/data_rdfs.json +0 -0
  44. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/mocks.py +0 -0
  45. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ner/__init__.py +0 -0
  46. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ner/api.py +0 -0
  47. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ner/normalizer.py +0 -0
  48. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/plugins.py +0 -0
  49. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/py.typed +0 -0
  50. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resource_utils.py +0 -0
  51. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resources/__init__.py +0 -0
  52. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resources/ncbitaxon.py +0 -0
  53. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resources/ncbitaxon.tsv.gz +0 -0
  54. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resources/ro.py +0 -0
  55. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resources/ro.tsv +0 -0
  56. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resources/so.py +0 -0
  57. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/resources/so.tsv +0 -0
  58. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/README.md +0 -0
  59. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/__init__.py +0 -0
  60. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/agrovoc.py +0 -0
  61. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/antibodyregistry.py +0 -0
  62. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/bigg/__init__.py +0 -0
  63. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/bigg/bigg_compartment.py +0 -0
  64. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/bigg/bigg_metabolite.py +0 -0
  65. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/bigg/bigg_model.py +0 -0
  66. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/bigg/bigg_reaction.py +0 -0
  67. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/biogrid.py +0 -0
  68. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/ccle.py +0 -0
  69. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/cgnc.py +0 -0
  70. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/chebi.py +0 -0
  71. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/chembl/__init__.py +0 -0
  72. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/chembl/chembl_cell.py +0 -0
  73. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/chembl/chembl_compound.py +0 -0
  74. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/chembl/chembl_mechanism.py +0 -0
  75. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/chembl/chembl_target.py +0 -0
  76. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/chembl/chembl_tissue.py +0 -0
  77. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/civic_gene.py +0 -0
  78. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/clinicaltrials.py +0 -0
  79. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/complexportal.py +0 -0
  80. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/conso.py +0 -0
  81. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/cpt.py +0 -0
  82. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/credit.py +0 -0
  83. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/cvx.py +0 -0
  84. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/depmap.py +0 -0
  85. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/dictybase_gene.py +0 -0
  86. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/drugbank/__init__.py +0 -0
  87. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/drugbank/drugbank.py +0 -0
  88. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/drugbank/drugbank_salt.py +0 -0
  89. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/expasy.py +0 -0
  90. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/famplex.py +0 -0
  91. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/flybase.py +0 -0
  92. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/gard.py +0 -0
  93. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/geonames/__init__.py +0 -0
  94. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/geonames/features.py +0 -0
  95. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/geonames/geonames.py +0 -0
  96. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/geonames/utils.py +0 -0
  97. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/gmt_utils.py +0 -0
  98. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/go.py +0 -0
  99. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/gtdb.py +0 -0
  100. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/gwascentral/__init__.py +0 -0
  101. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/gwascentral/gwascentral_phenotype.py +0 -0
  102. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/gwascentral/gwascentral_study.py +0 -0
  103. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/hgnc/__init__.py +0 -0
  104. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/hgnc/hgnc.py +0 -0
  105. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/hgnc/hgncgenefamily.py +0 -0
  106. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/iana_media_type.py +0 -0
  107. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/icd/__init__.py +0 -0
  108. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/icd/icd10.py +0 -0
  109. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/icd/icd11.py +0 -0
  110. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/icd/icd_utils.py +0 -0
  111. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/intact.py +0 -0
  112. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/interpro.py +0 -0
  113. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/itis.py +0 -0
  114. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/kegg/__init__.py +0 -0
  115. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/kegg/api.py +0 -0
  116. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/kegg/genes.py +0 -0
  117. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/kegg/genome.py +0 -0
  118. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/kegg/pathway.py +0 -0
  119. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/mesh.py +0 -0
  120. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/mgi.py +0 -0
  121. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/mirbase/__init__.py +0 -0
  122. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/mirbase/mirbase.py +0 -0
  123. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/mirbase/mirbase_constants.py +0 -0
  124. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/mirbase/mirbase_family.py +0 -0
  125. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/mirbase/mirbase_mature.py +0 -0
  126. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/msigdb.py +0 -0
  127. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/ncbi/__init__.py +0 -0
  128. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/ncbi/ncbi_gc.py +0 -0
  129. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/ncbi/ncbigene.py +0 -0
  130. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/nih_reporter.py +0 -0
  131. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/nlm/__init__.py +0 -0
  132. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/nlm/nlm_catalog.py +0 -0
  133. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/nlm/nlm_publisher.py +0 -0
  134. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/nlm/utils.py +0 -0
  135. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/npass.py +0 -0
  136. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/omim_ps.py +0 -0
  137. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pathbank.py +0 -0
  138. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pfam/__init__.py +0 -0
  139. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pfam/pfam.py +0 -0
  140. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pfam/pfam_clan.py +0 -0
  141. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pharmgkb/__init__.py +0 -0
  142. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pharmgkb/pharmgkb_chemical.py +0 -0
  143. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pharmgkb/pharmgkb_disease.py +0 -0
  144. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pharmgkb/pharmgkb_gene.py +0 -0
  145. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pharmgkb/pharmgkb_pathway.py +0 -0
  146. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pharmgkb/pharmgkb_variant.py +0 -0
  147. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pharmgkb/utils.py +0 -0
  148. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pid.py +0 -0
  149. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pombase.py +0 -0
  150. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/pubchem.py +0 -0
  151. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/reactome.py +0 -0
  152. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/rgd.py +0 -0
  153. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/rhea.py +0 -0
  154. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/ror.py +0 -0
  155. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/selventa/__init__.py +0 -0
  156. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/selventa/schem.py +0 -0
  157. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/selventa/scomp.py +0 -0
  158. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/selventa/sdis.py +0 -0
  159. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/selventa/sfam.py +0 -0
  160. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/sgd.py +0 -0
  161. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/signor/__init__.py +0 -0
  162. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/signor/download.py +0 -0
  163. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/signor/signor_complexes.py +0 -0
  164. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/slm.py +0 -0
  165. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/umls/__init__.py +0 -0
  166. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/umls/__main__.py +0 -0
  167. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/umls/get_synonym_types.py +0 -0
  168. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/umls/sty.py +0 -0
  169. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/umls/synonym_types.tsv +0 -0
  170. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/umls/umls.py +0 -0
  171. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/unimod.py +0 -0
  172. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/uniprot/__init__.py +0 -0
  173. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/uniprot/uniprot.py +0 -0
  174. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/uniprot/uniprot_ptm.py +0 -0
  175. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/utils.py +0 -0
  176. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/wikipathways.py +0 -0
  177. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/sources/zfin.py +0 -0
  178. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ssg/__init__.py +0 -0
  179. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ssg/base.html +0 -0
  180. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ssg/index.html +0 -0
  181. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ssg/term.html +0 -0
  182. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/ssg/typedef.html +0 -0
  183. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/__init__.py +0 -0
  184. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/functional/__init__.py +0 -0
  185. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/functional/dsl.py +0 -0
  186. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/functional/macros.py +0 -0
  187. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/functional/obo_to_functional.py +0 -0
  188. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/functional/ontology.py +0 -0
  189. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/functional/utils.py +0 -0
  190. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/obo/__init__.py +0 -0
  191. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/obo/reader.py +0 -0
  192. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/obo/reader_utils.py +0 -0
  193. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/obograph/__init__.py +0 -0
  194. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/obograph/export.py +0 -0
  195. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/obograph/reader.py +0 -0
  196. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/obograph/utils.py +0 -0
  197. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/reference.py +0 -0
  198. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/struct_utils.py +0 -0
  199. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/typedef.py +0 -0
  200. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/utils.py +0 -0
  201. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/struct/vocabulary.py +0 -0
  202. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/utils/__init__.py +0 -0
  203. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/utils/cache.py +0 -0
  204. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/utils/io.py +0 -0
  205. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/utils/iter.py +0 -0
  206. {pyobo-0.12.5 → pyobo-0.12.6}/src/pyobo/utils/ndex_utils.py +0 -0
  207. {pyobo-0.12.5 → pyobo-0.12.6}/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.5
3
+ Version: 0.12.6
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
@@ -30,7 +30,6 @@ Requires-Dist: tqdm
30
30
  Requires-Dist: pyyaml
31
31
  Requires-Dist: pandas
32
32
  Requires-Dist: requests
33
- Requires-Dist: protmapper
34
33
  Requires-Dist: more-itertools
35
34
  Requires-Dist: more-click>=0.0.2
36
35
  Requires-Dist: humanize
@@ -43,7 +42,6 @@ Requires-Dist: bioontologies>=0.7.2
43
42
  Requires-Dist: ssslm>=0.0.13
44
43
  Requires-Dist: zenodo-client>=0.3.6
45
44
  Requires-Dist: class-resolver>=0.6.0
46
- Requires-Dist: psycopg2-binary
47
45
  Requires-Dist: pydantic>=2.0
48
46
  Requires-Dist: curies>=0.10.17
49
47
  Requires-Dist: curies-processing>=0.1.2
@@ -57,8 +55,11 @@ Requires-Dist: nih-reporter-downloader>=0.0.1
57
55
  Requires-Dist: typing-extensions
58
56
  Requires-Dist: rdflib
59
57
  Requires-Dist: obographs>=0.0.8
58
+ Requires-Dist: psycopg2-binary ; extra == 'drugcentral'
60
59
  Requires-Dist: ssslm[gilda] ; extra == 'gilda'
61
60
  Requires-Dist: ssslm[gilda-slim] ; extra == 'gilda-slim'
61
+ Requires-Dist: protmapper ; extra == 'pid'
62
+ Requires-Dist: pyobo[drugcentral,pid] ; extra == 'sources'
62
63
  Maintainer: Charles Tapley Hoyt
63
64
  Maintainer-email: Charles Tapley Hoyt <cthoyt@gmail.com>
64
65
  Requires-Python: >=3.10
@@ -67,8 +68,11 @@ Project-URL: Documentation, https://pyobo.readthedocs.io
67
68
  Project-URL: Funding, https://github.com/sponsors/cthoyt
68
69
  Project-URL: Homepage, https://github.com/biopragmatics/pyobo
69
70
  Project-URL: Repository, https://github.com/biopragmatics/pyobo.git
71
+ Provides-Extra: drugcentral
70
72
  Provides-Extra: gilda
71
73
  Provides-Extra: gilda-slim
74
+ Provides-Extra: pid
75
+ Provides-Extra: sources
72
76
  Description-Content-Type: text/markdown
73
77
 
74
78
  <!--
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "pyobo"
7
- version = "0.12.5"
7
+ version = "0.12.6"
8
8
  description = "A python package for handling and generating OBO"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -63,7 +63,6 @@ dependencies = [
63
63
  "pyyaml",
64
64
  "pandas",
65
65
  "requests",
66
- "protmapper",
67
66
  "more_itertools",
68
67
  "more_click>=0.0.2",
69
68
  "humanize",
@@ -76,7 +75,6 @@ dependencies = [
76
75
  "ssslm>=0.0.13",
77
76
  "zenodo-client>=0.3.6",
78
77
  "class_resolver>=0.6.0",
79
- "psycopg2-binary",
80
78
  "pydantic>=2.0",
81
79
  "curies>=0.10.17",
82
80
  "curies-processing>=0.1.2",
@@ -158,6 +156,15 @@ gilda = [
158
156
  gilda-slim = [
159
157
  "ssslm[gilda-slim]",
160
158
  ]
159
+ sources = [
160
+ "pyobo[drugcentral,pid]",
161
+ ]
162
+ drugcentral =[
163
+ "psycopg2-binary",
164
+ ]
165
+ pid = [
166
+ "protmapper",
167
+ ]
161
168
 
162
169
  # See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#urls
163
170
  # and also https://packaging.python.org/en/latest/specifications/well-known-project-urls/
@@ -289,7 +296,7 @@ known-first-party = [
289
296
  docstring-code-format = true
290
297
 
291
298
  [tool.bumpversion]
292
- current_version = "0.12.5"
299
+ current_version = "0.12.6"
293
300
  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-]+)*))?"
294
301
  serialize = [
295
302
  "{major}.{minor}.{patch}-{release}+{build}",
@@ -6,6 +6,7 @@ from collections.abc import Iterable
6
6
  from pathlib import Path
7
7
 
8
8
  import bioregistry
9
+ import bioversions
9
10
  import click
10
11
  from more_click import verbose_option
11
12
  from tqdm.contrib.logging import logging_redirect_tqdm
@@ -97,12 +98,17 @@ def _update_database_kwargs(kwargs: DatabaseKwargs) -> DatabaseKwargs:
97
98
 
98
99
 
99
100
  @database_annotate
101
+ @click.option("--eager-versions", is_flag=True)
100
102
  @click.pass_context
101
- def build(ctx: click.Context, **kwargs: Unpack[DatabaseKwargs]) -> None:
103
+ def build(ctx: click.Context, eager_versions: bool, **kwargs: Unpack[DatabaseKwargs]) -> None:
102
104
  """Build all databases."""
103
105
  # if no_strict and zenodo:
104
106
  # click.secho("Must be strict before uploading", fg="red")
105
107
  # sys.exit(1)
108
+
109
+ if eager_versions:
110
+ bioversions.get_rows(use_tqdm=True)
111
+
106
112
  with logging_redirect_tqdm():
107
113
  click.secho("Collecting metadata and building", fg="cyan", bold=True)
108
114
  # note that this is the only one that needs a force=force
@@ -287,7 +287,9 @@ def wrap_norm_prefix(f):
287
287
  raise ValueError(f"Invalid prefix: {prefix.prefix}")
288
288
  prefix = ReferenceTuple(norm_prefix, prefix.identifier)
289
289
  else:
290
- raise TypeError
290
+ raise TypeError(
291
+ f"prefix should be given as a string or reference object. Got {type(prefix)} {prefix}"
292
+ )
291
293
  return f(prefix, *args, **kwargs)
292
294
 
293
295
  return _wrapped
@@ -6,7 +6,6 @@ from collections.abc import Iterable
6
6
  from contextlib import closing
7
7
 
8
8
  import bioregistry
9
- import psycopg2
10
9
  from pydantic import ValidationError
11
10
  from tqdm.auto import tqdm
12
11
 
@@ -42,6 +41,8 @@ class DrugCentralGetter(Obo):
42
41
 
43
42
  def iter_terms() -> Iterable[Term]:
44
43
  """Iterate over DrugCentral terms."""
44
+ import psycopg2
45
+
45
46
  with closing(psycopg2.connect(**PARAMS)) as conn:
46
47
  with closing(conn.cursor()) as cur:
47
48
  cur.execute(
@@ -55,11 +55,15 @@ def _get_term(record: dict[str, Any]) -> Term | None:
55
55
  except ValidationError:
56
56
  tqdm.write(f"invalid: {record['licenseId']}")
57
57
  return None
58
- term = Term(
59
- reference=reference,
60
- is_obsolete=True if record.get("isDeprecatedLicenseId") else None,
61
- # type="Instance",
62
- ).append_parent(ROOT)
58
+ term = (
59
+ Term(
60
+ reference=reference,
61
+ is_obsolete=True if record.get("isDeprecatedLicenseId") else None,
62
+ # type="Instance",
63
+ )
64
+ .append_parent(ROOT)
65
+ .append_synonym(record["licenseId"])
66
+ )
63
67
  if record.get("isOsiApproved"):
64
68
  term.annotate_boolean(IS_OSI, True)
65
69
  if record.get("isFsfLibre"):
@@ -82,4 +86,4 @@ class SPDXLicenseGetter(Obo):
82
86
 
83
87
 
84
88
  if __name__ == "__main__":
85
- SPDXLicenseGetter.cli(["--obo", "--owl", "--rewrite"])
89
+ SPDXLicenseGetter.cli()
@@ -8,6 +8,7 @@ import json
8
8
  import logging
9
9
  import os
10
10
  import sys
11
+ import tempfile
11
12
  import warnings
12
13
  from collections import ChainMap, defaultdict
13
14
  from collections.abc import Callable, Collection, Iterable, Iterator, Mapping, Sequence
@@ -1021,6 +1022,15 @@ class Obo:
1021
1022
  ofn = get_ofn_from_obo(self)
1022
1023
  ofn.write_funowl(path)
1023
1024
 
1025
+ def write_owl(self, path: str | Path) -> None:
1026
+ """Write OWL, by first outputting OFN then converting with ROBOT."""
1027
+ from bioontologies import robot
1028
+
1029
+ with tempfile.TemporaryDirectory() as directory:
1030
+ ofn_path = Path(directory).joinpath("tmp.ofn")
1031
+ self.write_ofn(ofn_path)
1032
+ robot.convert(ofn_path, path)
1033
+
1024
1034
  def write_rdf(self, path: str | Path) -> None:
1025
1035
  """Write as Turtle RDF."""
1026
1036
  from .functional.obo_to_functional import get_ofn_from_obo
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import logging
6
- from collections.abc import Callable
6
+ from collections.abc import Callable, Iterable
7
7
  from datetime import datetime
8
8
 
9
9
  import bioversions.utils
@@ -46,6 +46,8 @@ VERSION_PREFIXES = [
46
46
  "http://w3id.org/nfdi4ing/metadata4ing/", # like http://w3id.org/nfdi4ing/metadata4ing/1.3.1
47
47
  "http://www.semanticweb.com/OntoRxn/", # like http://www.semanticweb.com/OntoRxn/0.2.5
48
48
  "https://w3id.org/lehrplan/ontology/", # like in https://w3id.org/lehrplan/ontology/1.0.0-4
49
+ "http://www.ebi.ac.uk/swo/version/", # http://www.ebi.ac.uk/swo/version/6.0
50
+ "https://w3id.org/emi/version/",
49
51
  ]
50
52
  VERSION_PREFIX_SPLITS = [
51
53
  "http://www.ebi.ac.uk/efo/releases/v",
@@ -193,18 +195,23 @@ def _prioritize_version(
193
195
  return None
194
196
 
195
197
 
196
- def _get_version_from_artifact(prefix: str) -> str | None:
198
+ def _get_getter_urls(prefix: str) -> Iterable[tuple[OntologyFormat, str]]:
197
199
  # assume that all possible files that can be downloaded
198
200
  # are in sync and have the same version
199
- for ontology_format, func in ONTOLOGY_GETTERS:
200
- url = func(prefix)
201
+ for ontology_format, get_url_func in ONTOLOGY_GETTERS:
202
+ url = get_url_func(prefix)
201
203
  if url is None:
202
204
  continue
205
+ yield ontology_format, url
206
+
207
+
208
+ def _get_version_from_artifact(prefix: str) -> str | None:
209
+ for ontology_format, url in _get_getter_urls(prefix):
203
210
  # Try to peak into the file to get the version without fully downloading
204
- version_func = VERSION_GETTERS.get(ontology_format)
205
- if version_func is None:
211
+ get_version_func = VERSION_GETTERS.get(ontology_format)
212
+ if get_version_func is None:
206
213
  continue
207
- version = version_func(prefix, url)
214
+ version = get_version_func(prefix, url)
208
215
  if version:
209
216
  return cleanup_version(version, prefix=prefix)
210
217
  return None
@@ -12,7 +12,7 @@ __all__ = [
12
12
  "get_version",
13
13
  ]
14
14
 
15
- VERSION = "0.12.5"
15
+ VERSION = "0.12.6"
16
16
 
17
17
 
18
18
  def get_git_hash() -> str:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes