pyobo 0.12.10__py3-none-any.whl → 0.12.12__py3-none-any.whl

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 (46) hide show
  1. pyobo/__init__.py +6 -0
  2. pyobo/api/__init__.py +11 -1
  3. pyobo/api/alts.py +18 -4
  4. pyobo/api/embedding.py +108 -9
  5. pyobo/api/names.py +28 -6
  6. pyobo/api/xrefs.py +21 -1
  7. pyobo/cli/cli.py +9 -3
  8. pyobo/cli/database.py +63 -22
  9. pyobo/cli/lookup.py +39 -24
  10. pyobo/cli/utils.py +6 -2
  11. pyobo/constants.py +66 -7
  12. pyobo/getters.py +8 -3
  13. pyobo/ner/api.py +17 -10
  14. pyobo/ner/scispacy_utils.py +2 -0
  15. pyobo/plugins.py +3 -1
  16. pyobo/sources/__init__.py +2 -0
  17. pyobo/sources/antibodyregistry.py +3 -3
  18. pyobo/sources/bigg/bigg_compartment.py +1 -1
  19. pyobo/sources/complexportal.py +3 -3
  20. pyobo/sources/conso.py +3 -3
  21. pyobo/sources/famplex.py +3 -3
  22. pyobo/sources/goldbook.py +86 -0
  23. pyobo/sources/hgnc/hgnc.py +157 -96
  24. pyobo/sources/hgnc/hgncgenefamily.py +14 -13
  25. pyobo/sources/msigdb.py +3 -3
  26. pyobo/sources/omim_ps.py +8 -2
  27. pyobo/sources/reactome.py +3 -3
  28. pyobo/sources/rgd.py +7 -11
  29. pyobo/sources/slm.py +3 -3
  30. pyobo/sources/uniprot/uniprot.py +3 -3
  31. pyobo/sources/wikipathways.py +7 -2
  32. pyobo/struct/__init__.py +2 -2
  33. pyobo/struct/functional/macros.py +1 -1
  34. pyobo/struct/functional/obo_to_functional.py +7 -3
  35. pyobo/struct/obo/reader.py +4 -4
  36. pyobo/struct/struct.py +48 -18
  37. pyobo/struct/struct_utils.py +19 -5
  38. pyobo/struct/typedef.py +19 -3
  39. pyobo/struct/vocabulary.py +6 -3
  40. pyobo/utils/path.py +5 -4
  41. pyobo/version.py +1 -1
  42. {pyobo-0.12.10.dist-info → pyobo-0.12.12.dist-info}/METADATA +45 -23
  43. {pyobo-0.12.10.dist-info → pyobo-0.12.12.dist-info}/RECORD +46 -45
  44. {pyobo-0.12.10.dist-info → pyobo-0.12.12.dist-info}/WHEEL +1 -1
  45. {pyobo-0.12.10.dist-info → pyobo-0.12.12.dist-info}/entry_points.txt +0 -0
  46. {pyobo-0.12.10.dist-info → pyobo-0.12.12.dist-info}/licenses/LICENSE +0 -0
pyobo/utils/path.py CHANGED
@@ -84,7 +84,7 @@ def ensure_df(
84
84
  dtype=str,
85
85
  verify: bool = True,
86
86
  backend: Literal["requests", "urllib"] | None = None,
87
- **kwargs,
87
+ **kwargs: Any,
88
88
  ) -> pd.DataFrame:
89
89
  """Download a file and open as a dataframe."""
90
90
  _path = ensure_path(
@@ -107,12 +107,11 @@ def ensure_json(
107
107
  version: VersionHint = None,
108
108
  name: str | None = None,
109
109
  force: bool = False,
110
- sep: str = "\t",
111
110
  dtype=str,
112
111
  verify: bool = True,
113
112
  backend: Literal["requests", "urllib"] | None = None,
114
- **kwargs,
115
- ) -> pd.DataFrame:
113
+ **kwargs: Any,
114
+ ) -> Any:
116
115
  """Download a file and open as JSON."""
117
116
  _path = ensure_path(
118
117
  prefix,
@@ -151,6 +150,8 @@ class CacheArtifact(enum.Enum):
151
150
  prefixes = "prefixes.json"
152
151
  metadata = "metadata.json"
153
152
 
153
+ embeddings = "embeddings.tsv.gz"
154
+
154
155
 
155
156
  def get_cache_path(
156
157
  ontology: str,
pyobo/version.py CHANGED
@@ -12,7 +12,7 @@ __all__ = [
12
12
  "get_version",
13
13
  ]
14
14
 
15
- VERSION = "0.12.10"
15
+ VERSION = "0.12.12"
16
16
 
17
17
 
18
18
  def get_git_hash() -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobo
3
- Version: 0.12.10
3
+ Version: 0.12.12
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
@@ -55,10 +55,15 @@ Requires-Dist: nih-reporter-downloader>=0.0.1
55
55
  Requires-Dist: typing-extensions
56
56
  Requires-Dist: rdflib
57
57
  Requires-Dist: obographs>=0.0.8
58
+ Requires-Dist: sssom-pydantic>=0.1.1
58
59
  Requires-Dist: psycopg2-binary ; extra == 'drugcentral'
59
60
  Requires-Dist: ssslm[gilda] ; extra == 'gilda'
60
61
  Requires-Dist: ssslm[gilda-slim] ; extra == 'gilda-slim'
62
+ Requires-Dist: grape ; extra == 'grape'
63
+ Requires-Dist: embiggen ; extra == 'grape'
64
+ Requires-Dist: ensmallen ; extra == 'grape'
61
65
  Requires-Dist: protmapper ; extra == 'pid'
66
+ Requires-Dist: pykeen ; extra == 'pykeen'
62
67
  Requires-Dist: scispacy ; python_full_version < '3.13' and extra == 'scispacy'
63
68
  Requires-Dist: spacy ; python_full_version < '3.13' and extra == 'scispacy'
64
69
  Requires-Dist: scipy<1.11 ; python_full_version < '3.13' and extra == 'scispacy'
@@ -74,7 +79,9 @@ Project-URL: Repository, https://github.com/biopragmatics/pyobo.git
74
79
  Provides-Extra: drugcentral
75
80
  Provides-Extra: gilda
76
81
  Provides-Extra: gilda-slim
82
+ Provides-Extra: grape
77
83
  Provides-Extra: pid
84
+ Provides-Extra: pykeen
78
85
  Provides-Extra: scispacy
79
86
  Provides-Extra: sources
80
87
  Description-Content-Type: text/markdown
@@ -516,20 +523,6 @@ Alternatively, install using pip:
516
523
  $ python3 -m pip install -e .
517
524
  ```
518
525
 
519
- ### Updating Package Boilerplate
520
-
521
- This project uses `cruft` to keep boilerplate (i.e., configuration, contribution
522
- guidelines, documentation configuration) up-to-date with the upstream
523
- cookiecutter package. Install cruft with either `uv tool install cruft` or
524
- `python3 -m pip install cruft` then run:
525
-
526
- ```console
527
- $ cruft update
528
- ```
529
-
530
- More info on Cruft's update command is available
531
- [here](https://github.com/cruft/cruft?tab=readme-ov-file#updating-a-project).
532
-
533
526
  ### 🥼 Testing
534
527
 
535
528
  After cloning the repository and installing `tox` with
@@ -567,8 +560,21 @@ only that Sphinx can build the documentation in an isolated environment (i.e.,
567
560
  with `tox -e docs-test`) but also that
568
561
  [ReadTheDocs can build it too](https://docs.readthedocs.io/en/stable/pull-requests.html).
569
562
 
563
+ </details>
564
+
565
+ ## 🧑‍💻 For Maintainers
566
+
567
+ <details>
568
+ <summary>See maintainer instructions</summary>
569
+
570
+ ### Initial Configuration
571
+
570
572
  #### Configuring ReadTheDocs
571
573
 
574
+ [ReadTheDocs](https://readthedocs.org) is an external documentation hosting
575
+ service that integrates with GitHub's CI/CD. Do the following for each
576
+ repository:
577
+
572
578
  1. Log in to ReadTheDocs with your GitHub account to install the integration at
573
579
  https://readthedocs.org/accounts/login/?next=/dashboard/
574
580
  2. Import your project by navigating to https://readthedocs.org/dashboard/import
@@ -577,12 +583,10 @@ with `tox -e docs-test`) but also that
577
583
  (i.e., with spaces and capital letters)
578
584
  4. Click next, and you're good to go!
579
585
 
580
- ### 📦 Making a Release
581
-
582
- #### Configuring Zenodo
586
+ #### Configuring Archival on Zenodo
583
587
 
584
588
  [Zenodo](https://zenodo.org) is a long-term archival system that assigns a DOI
585
- to each release of your package.
589
+ to each release of your package. Do the following for each repository:
586
590
 
587
591
  1. Log in to Zenodo via GitHub with this link:
588
592
  https://zenodo.org/oauth/login/github/?next=%2F. This brings you to a page
@@ -602,10 +606,10 @@ the DOI for the release and link to the Zenodo record for it.
602
606
 
603
607
  #### Registering with the Python Package Index (PyPI)
604
608
 
605
- You only have to do the following steps once.
609
+ The [Python Package Index (PyPI)](https://pypi.org) hosts packages so they can
610
+ be easily installed with `pip`, `uv`, and equivalent tools.
606
611
 
607
- 1. Register for an account on the
608
- [Python Package Index (PyPI)](https://pypi.org/account/register)
612
+ 1. Register for an account [here](https://pypi.org/account/register)
609
613
  2. Navigate to https://pypi.org/manage/account and make sure you have verified
610
614
  your email address. A verification email might not have been sent by default,
611
615
  so you might have to click the "options" dropdown next to your address to get
@@ -616,9 +620,11 @@ You only have to do the following steps once.
616
620
  2-factor authentication
617
621
  4. Issue an API token from https://pypi.org/manage/account/token
618
622
 
623
+ This only needs to be done once per developer.
624
+
619
625
  #### Configuring your machine's connection to PyPI
620
626
 
621
- You have to do the following steps once per machine.
627
+ This needs to be done once per machine.
622
628
 
623
629
  ```console
624
630
  $ uv tool install keyring
@@ -628,6 +634,8 @@ $ keyring set https://test.pypi.org/legacy/ __token__
628
634
 
629
635
  Note that this deprecates previous workflows using `.pypirc`.
630
636
 
637
+ ### 📦 Making a Release
638
+
631
639
  #### Uploading to PyPI
632
640
 
633
641
  After installing the package in development mode and installing `tox` with
@@ -665,4 +673,18 @@ This script does the following:
665
673
 
666
674
  This will trigger Zenodo to assign a DOI to your release as well.
667
675
 
676
+ ### Updating Package Boilerplate
677
+
678
+ This project uses `cruft` to keep boilerplate (i.e., configuration, contribution
679
+ guidelines, documentation configuration) up-to-date with the upstream
680
+ cookiecutter package. Install cruft with either `uv tool install cruft` or
681
+ `python3 -m pip install cruft` then run:
682
+
683
+ ```console
684
+ $ cruft update
685
+ ```
686
+
687
+ More info on Cruft's update command is available
688
+ [here](https://github.com/cruft/cruft?tab=readme-ov-file#updating-a-project).
689
+
668
690
  </details>
@@ -1,28 +1,28 @@
1
1
  pyobo/.DS_Store,sha256=icmyUcy152KPoCV2jHO6ZiHzdoYZ79aYVdPXzcGzMEQ,8196
2
- pyobo/__init__.py,sha256=9pWTUfKGgpfZuQ4BS1zrHChealMlCrqrlR5htZJ80xg,3891
2
+ pyobo/__init__.py,sha256=WQCfhng88j77GTYJKw5YmTv6p0U7sRA5RVMMts1DWSc,4063
3
3
  pyobo/__main__.py,sha256=cOYQ2OELxF-9T6nuZ9xnLSu9bLHk6einrsSoz7EcD9M,83
4
- pyobo/api/__init__.py,sha256=sFrxkD5A6bof7MuL-34Lz3nU4ZBL9vSw5L5EwzGR5Rk,3145
5
- pyobo/api/alts.py,sha256=R4sxYldGFvKCe9cxB_gPXf2vWXHq9saBMQkQnbqJ5SI,3032
4
+ pyobo/api/__init__.py,sha256=noKWkj7WTMRUnkFAPRxv7LoaTOwjJOpS4y6BLxILOdE,3334
5
+ pyobo/api/alts.py,sha256=v177QYdo5LVmlau0CF6FiN3vGYisuWBHFJnzZVpWv68,3477
6
6
  pyobo/api/combine.py,sha256=7T8Qj8W1wWQ1KgKJsO1kFRHZxkQcrfKM1hBrhqHsEkU,1106
7
7
  pyobo/api/edges.py,sha256=SEm2gJx6LoOkhXGj11V42uLg4FidFa9jJqW9Hznlfwk,1974
8
- pyobo/api/embedding.py,sha256=Biw5DLCEP0R2IPXcP-cnCbUlWXerQPHiSXJww_x4kn8,4438
8
+ pyobo/api/embedding.py,sha256=lLJDj_QsL7eqjHq_qaoJ4Dzhi3ucWtMoMfduDsUp1PU,8291
9
9
  pyobo/api/hierarchy.py,sha256=Ek1Rkr7qwTinz5DfCIlSXNLe4geMH_6Zta9dgoQIVXs,10318
10
10
  pyobo/api/metadata.py,sha256=stJaiX_l7x0R1V77TNwHvPtokuZ-Eoqb9HMRL70NiWs,1029
11
- pyobo/api/names.py,sha256=Z00vuReU7CGKL39EZvMAMQu3VGLKYlJFzMBHT4kV4xA,10935
11
+ pyobo/api/names.py,sha256=Jr5ECN0KQmq3PwZ7pmcYuTDztSKuH4lFAgbRo7UM7-I,11591
12
12
  pyobo/api/properties.py,sha256=2LFERWJtvopI8OtfTrmPLj_SdeVvVHP4DcpQf8TO9tk,6944
13
13
  pyobo/api/relations.py,sha256=Kebguj5khScU2c0Pm8dJrewu8je9DnKlNenRtmYWGKI,5875
14
14
  pyobo/api/species.py,sha256=YxzJeClfuKI-pjYLpu5797jdDeyTkXpjQDgdmc9MKwo,2376
15
15
  pyobo/api/typedefs.py,sha256=HTui0kl_VELxgji0vfBr-NBG3zrrpCU8tmuQOSWK6fw,1262
16
16
  pyobo/api/utils.py,sha256=SCMsy4QyYVhn-QK0h90Ef1XUMbyHKR1fvteRESzs-bk,5192
17
- pyobo/api/xrefs.py,sha256=nWLLt2GzaVfngNBUbOMVSjOpCua-I7u-2tuoxzXGqrA,5242
17
+ pyobo/api/xrefs.py,sha256=szsPOMwkKmfDRb7CNgyEoe7hRQK8aX1Vm6Vcz0FYN2w,5956
18
18
  pyobo/cli/__init__.py,sha256=pTiLuzjjpi0P69yVjQ2kE6nBUmZuYFnqdJNDZLDkgvk,71
19
- pyobo/cli/cli.py,sha256=5bY_7ZVZOoHwhZtCxx-AYL5ybyBzjS65NU5v5X9DsLA,2842
20
- pyobo/cli/database.py,sha256=grPVG1d78yhog5lvEAu3wwHkBASKhtmabwmvx49WRIc,12121
19
+ pyobo/cli/cli.py,sha256=lyN_Hi5Hf2jyCUXjD87pG7RU3g7TnbBiOd8o-PMqIEw,2904
20
+ pyobo/cli/database.py,sha256=iq4-eJ_8Kgim0MMnSqf1wu2hvHDZk9BWNMVuwykz2Ko,13407
21
21
  pyobo/cli/database_utils.py,sha256=jQ7qSg-oZk-Q-RC121NkUbqXeNg0K8fV96igXaK3ra4,5540
22
- pyobo/cli/lookup.py,sha256=GxG753GXnDRf-N9JRWKRmQC5XiN8fEN5l1le5C3jHHY,9163
23
- pyobo/cli/utils.py,sha256=nmtXsxG0TWEIjjIe-jh_aqzr09bTN7-NHFifuHGzME0,1738
24
- pyobo/constants.py,sha256=G5EyZhuccwrMn11DRaTXMzTHa5RGdtGRzYqrcYAn6R0,5791
25
- pyobo/getters.py,sha256=X2gQCZhlj2sHDhL7vVLMjSgPFC1TYSh6x07jvMQG3rg,18197
22
+ pyobo/cli/lookup.py,sha256=-Tz6E3OP6HBPipVqSrMn7LyzrezbT0pngeDExF5uyn4,9467
23
+ pyobo/cli/utils.py,sha256=SfW9JC8olzp4AcAsDodMPdgHfteeXq0Ngd8yQ2kzOMA,1812
24
+ pyobo/constants.py,sha256=K3d8gjfty6zVc3nUBX32oVQX7tzFxnEkGCO1THlC5Qw,7564
25
+ pyobo/getters.py,sha256=exZNjlseRoWhshQYArWwN2KLvkk4NmCQnHM88YUYf-w,18340
26
26
  pyobo/gilda_utils.py,sha256=uThAArALSNzJi-hrR9lUvtQci5VIw4Cqq2L6mtkp0Ko,1990
27
27
  pyobo/identifier_utils/__init__.py,sha256=iSHAZhOwqWZmYpOfpXNLuKouSYj7ZSViaX7BF5uT8so,793
28
28
  pyobo/identifier_utils/api.py,sha256=fik5crIOOhsHIuH-ia_oOQeKZeX5bBMj5S6occWaMeY,9365
@@ -34,10 +34,10 @@ pyobo/identifier_utils/relations/data_rdf.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq0
34
34
  pyobo/identifier_utils/relations/data_rdfs.json,sha256=bjpxZte3g4WvrGJsmHuAJN_cg_faxqIa9tCL7auHdqQ,86
35
35
  pyobo/mocks.py,sha256=j545K9P_DPsDBuYHDrhyTLjmlPoNlRdEtcRlLhXlbXI,2440
36
36
  pyobo/ner/__init__.py,sha256=7Os84d8_gZktUxyUW9Tn2dW33rYFWSO8cviJJef-ZeE,373
37
- pyobo/ner/api.py,sha256=s0MJgz6sj13qiB1TEyO_aC8103fgnYBwZroRgygpZNw,2167
37
+ pyobo/ner/api.py,sha256=a_wMpzIbRdBeK3UaMsklzL44T4Q7a9gtV3tzDrqBEX0,2555
38
38
  pyobo/ner/normalizer.py,sha256=pdvwFG9elriK83FKqjQfT2s-ZuC-QZZuMPudjfay21w,954
39
- pyobo/ner/scispacy_utils.py,sha256=4NRGJ1JJB-OmlVthHhyms1iPMwJYrkVMQP1jgZfJ18U,8170
40
- pyobo/plugins.py,sha256=wEr-NpyZ7Z6uEr0uGDNOeXLOGZokGbFmo3e-z2PNKJM,1232
39
+ pyobo/ner/scispacy_utils.py,sha256=13oQi4R5ikbg3xkzU0L46zno-Acq3BtjdtLm5eiBKjw,8253
40
+ pyobo/plugins.py,sha256=DJFJ3Eogb0snTUz22w6I56Yn2Ys0OOXK1dJJgzpyCOM,1287
41
41
  pyobo/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  pyobo/resource_utils.py,sha256=bloSKbHfMLz0hB8AkhMkfLOGqw6FyO8CEU6LNg0PVMk,4406
43
43
  pyobo/resources/__init__.py,sha256=Q9nik7HgpICCON7GEKpbw3z9ZIM7NFJwoGNpepkn2nA,38
@@ -48,11 +48,11 @@ pyobo/resources/ro.tsv,sha256=YvlBLPAKy2w4IheYzO9ox1Yg6WkHdMVzMQTikIlECog,26586
48
48
  pyobo/resources/so.py,sha256=S-vmQ7L8AJE08FfGVDIJqNQNaLPUmuJ6HC5F4hWHMrA,1466
49
49
  pyobo/resources/so.tsv,sha256=UJZKFTEAv_XszYYbun4Wf6b4jovDjSKc1RWRQRcTzDw,82068
50
50
  pyobo/sources/README.md,sha256=ApbwpI2hbYQiw4N6KE_VAApfOmTQHkeTbrNEExIbX4I,901
51
- pyobo/sources/__init__.py,sha256=5MGuBu0B3fx8F6gPGfmjLFfpDr2KxatPWpXfeMVtfwc,5029
51
+ pyobo/sources/__init__.py,sha256=ZQnId3SEss43nc4gsAnKl3-k5BUSNptm2cHOGGFt2aw,5088
52
52
  pyobo/sources/agrovoc.py,sha256=SJsbJ7KtxdJUG9Rimmb2CfLfzpK9eOzP0wx59gj-6s4,787
53
- pyobo/sources/antibodyregistry.py,sha256=NybUzPEobn5zrr1iUvC8Z9cuqDEDM1u07sjV1UADdmQ,3353
53
+ pyobo/sources/antibodyregistry.py,sha256=GbmW9vJ1TXul5mSJ4TkdI3uwMhjz7My-ROi2doV9v4g,3361
54
54
  pyobo/sources/bigg/__init__.py,sha256=4pK-71Bx0Iv93PqmZecUKX9LcapbW9wm7zBN9vhbpYI,349
55
- pyobo/sources/bigg/bigg_compartment.py,sha256=pFShMiH-WNH-msmOXDGUgu3gri8JRr5urizNwqvUXqw,3430
55
+ pyobo/sources/bigg/bigg_compartment.py,sha256=lvhAZGyMiCLIcr2JJvht4cINofOvrp9oMfHu5Io5fGk,3399
56
56
  pyobo/sources/bigg/bigg_metabolite.py,sha256=zs53CxPX7XTZpVOty6MWlxT3v0wLgWHaPI4-0vnbPpo,7728
57
57
  pyobo/sources/bigg/bigg_model.py,sha256=n43ZgHbCUS6KBmmstfFUu39hlkPsDhBpf2OB-kAF7YA,1287
58
58
  pyobo/sources/bigg/bigg_reaction.py,sha256=45SIIae32GtDxzL_gpF7p1TKVfh6t3UgHpF4flVBO9I,2459
@@ -68,8 +68,8 @@ pyobo/sources/chembl/chembl_target.py,sha256=BRo7ZeXvcBXSxKoqcu0VmkufaEULTVYhkj-
68
68
  pyobo/sources/chembl/chembl_tissue.py,sha256=gxYceIooVJ10i2_nUIi48SXzw-1lG17vIs9NRwRqwds,1938
69
69
  pyobo/sources/civic_gene.py,sha256=AWOdgOobFlbU95T1hA_Co2JNoNKd5MJSuF4jnYSkgw8,3096
70
70
  pyobo/sources/clinicaltrials.py,sha256=_MWExCo9GkOq0SD547yFD0THwRxr2L8TMKjZyXcQjgc,5459
71
- pyobo/sources/complexportal.py,sha256=a3DEDov1xwdf6u_qACdBi5a8fhvdT9kneB6KM2nLk7k,7645
72
- pyobo/sources/conso.py,sha256=R4YHnnl0bhkqDGBZy35xROCZX57E9iHPlDJJszagsGs,2320
71
+ pyobo/sources/complexportal.py,sha256=SqeC7GRXNYIumrmE93c9jM0MP2qeo6tNap2Diivh99I,7653
72
+ pyobo/sources/conso.py,sha256=1Wo63PQJUOvsESMptsZ6HmACu98TJfSZ4VB_13ZoEys,2328
73
73
  pyobo/sources/cpt.py,sha256=b7hcULlvu_xa6URwoD37Gc_8VAs8mxawAlXflL1e1LU,1466
74
74
  pyobo/sources/credit.py,sha256=IKmHuLFbAzdy0N4HI9OaUAzTXCM27QQ5hkPdfYBg2rg,2175
75
75
  pyobo/sources/cvx.py,sha256=l9Csuudr9Uyo0PNcjJTbNG62EOUcrAVoij0vJhNzhVE,3595
@@ -80,7 +80,7 @@ pyobo/sources/drugbank/drugbank.py,sha256=WiFsy_6INZkgetmbUYkE1vPpg5dLwjBfz3cVJj
80
80
  pyobo/sources/drugbank/drugbank_salt.py,sha256=abVl_igLemmMw4ULi3_ItTgfCaq3uybjqnsT9Rh7C1k,1646
81
81
  pyobo/sources/drugcentral.py,sha256=xIG_sPebbV-_S1vUQLzOuLqHa_RM-zAOfZ8oqr1aqbc,4052
82
82
  pyobo/sources/expasy.py,sha256=o0KcbRxF5GNupSjUBe9BznnfrW60sZr7Df2Eo4noOB4,11057
83
- pyobo/sources/famplex.py,sha256=qCvj6WB_6uq2RHHVPIaGhyqkf1ubI6XrO8Da-Yta96Q,5628
83
+ pyobo/sources/famplex.py,sha256=FPkIH_NNvG6muNyujdwdScJ64GNDXIsw6a7qF7o1sM4,5636
84
84
  pyobo/sources/flybase.py,sha256=gUS39NF_qc723R2SAbhQYqPg6UOiwKwPXhXQ1JwC68Q,5666
85
85
  pyobo/sources/gard.py,sha256=9oRvpNdt94cUqSYF529PFz9QCvF4sP-JBfhWkJroEZc,1768
86
86
  pyobo/sources/geonames/__init__.py,sha256=JQhpe8BKBSQ1P83vtQMSbAKa6xJ2tvX64OMDiD5WM7s,177
@@ -89,13 +89,14 @@ pyobo/sources/geonames/geonames.py,sha256=FI7YnOoLjoT8w90S6GXigUPsmrmGrmYn4hAJD4
89
89
  pyobo/sources/geonames/utils.py,sha256=iUiFMeo_U8FoAlijMoX7NhyEaG9MfppzEtVbiyUuza4,4012
90
90
  pyobo/sources/gmt_utils.py,sha256=zLkbHGLxBUPHxW7jCOHaZTW11YzPj8ON-E4QfPQTHxE,1327
91
91
  pyobo/sources/go.py,sha256=b3zbPGKd6wDclw68fA4Iq9awEZTIVRx37iXeruKQqmk,1536
92
+ pyobo/sources/goldbook.py,sha256=d4ednC3aWkIJD8VBRQpssMOiKZepUiduG9FMjV0769o,2502
92
93
  pyobo/sources/gtdb.py,sha256=LrJfruJCkEUs1NCCPQUpHyL6r2dzMttToNPgmqudIr0,5222
93
94
  pyobo/sources/gwascentral/__init__.py,sha256=VdHIgBVR-36B7gLuhR4XV5UXn_EgNZ0-i1g9NjhOjY0,231
94
95
  pyobo/sources/gwascentral/gwascentral_phenotype.py,sha256=SvMCF3sYqc3F5nNXCf76AzIhNT698ZHHnTpO0IGft8o,1788
95
96
  pyobo/sources/gwascentral/gwascentral_study.py,sha256=fzDiRuWU84085gclzuWNLbxDEsIdVysqXScMU0BdXnM,2672
96
97
  pyobo/sources/hgnc/__init__.py,sha256=1QhM7GdP6_AxCMzaBz2k3SRLkDTOkS2hUhPMLETSGWM,157
97
- pyobo/sources/hgnc/hgnc.py,sha256=esV7w3fiXm2sD1racQBfUKO_C4LBr_iP_nBywE84ztI,16699
98
- pyobo/sources/hgnc/hgncgenefamily.py,sha256=4-jQt1DVmn2j0KwrEA4kjo2tUa9UwEVAWhJwTjbbIM0,3710
98
+ pyobo/sources/hgnc/hgnc.py,sha256=jaCEZZR2YzjrrZNFtvEbfhrVu9HTLX7_sWkshgi022M,20332
99
+ pyobo/sources/hgnc/hgncgenefamily.py,sha256=NGkQXlyac0283WHeYXr3_o__Ak-hpbNnB0NIr2J0QGo,3912
99
100
  pyobo/sources/iana_media_type.py,sha256=X20G2a1ozF-JPaqNs3tUrNoeSb7jv_YsClKSTPH-8io,5024
100
101
  pyobo/sources/icd/__init__.py,sha256=DrZVl76P8essJ4tlZPcauFVrXVkIIZB6sJ0c6Km6SWI,142
101
102
  pyobo/sources/icd/icd10.py,sha256=YatVzgr229J_WeJca4FQAHqWrx7c7N4fHbhb1cQ1TeU,2587
@@ -117,7 +118,7 @@ pyobo/sources/mirbase/mirbase.py,sha256=9huL0PWAVcEDk-4unZw-GInyEE1C_FXwRxN65HG3
117
118
  pyobo/sources/mirbase/mirbase_constants.py,sha256=5DjcwX_FRSzFYbTf50yvkPamSIH70Rw3I8q-Ds0zHVs,1998
118
119
  pyobo/sources/mirbase/mirbase_family.py,sha256=TIWKhhF0pn6dhQTTgLg4lYrJKtu-ILltrHFZD0qeZb4,1974
119
120
  pyobo/sources/mirbase/mirbase_mature.py,sha256=Jj65xVqtjquzqZGTi8cnMmLdyfUfmthM_ka1SZ2-rzE,1302
120
- pyobo/sources/msigdb.py,sha256=45ddWaFdzGZ0lDavhV2zlYkUeGxQ0jQWCVIt-1DQZdw,6810
121
+ pyobo/sources/msigdb.py,sha256=CXXN4YZc99twaleFAvknMyx_AQlGYxgb-veKh_SLmhM,6818
121
122
  pyobo/sources/ncbi/__init__.py,sha256=SuPBRF4ZG0X6PsPauWvlYWx95YUGSODdjyCr5YyQzmk,156
122
123
  pyobo/sources/ncbi/ncbi_gc.py,sha256=uGgrt7fFy7m5Evre-NLvuJa4jftUZNC4utNDVMnk5rs,5470
123
124
  pyobo/sources/ncbi/ncbigene.py,sha256=zpuMe59DRZfczyxJfdSlIaIzDc9MDfMlAY3S_GZK97A,5096
@@ -127,7 +128,7 @@ pyobo/sources/nlm/nlm_catalog.py,sha256=ogXDh4zyRx69_YbGguH0yWEU5-3SvHnLBvEyxtgA
127
128
  pyobo/sources/nlm/nlm_publisher.py,sha256=lr6Cjo2Mdlad3JTkn3crafWKL1lcHX2tFuKdnIoKa5w,984
128
129
  pyobo/sources/nlm/utils.py,sha256=bEBXzz2fjjnFFcjrq_q8mfr1f0_RiKZoQ7H18gpV4HA,4861
129
130
  pyobo/sources/npass.py,sha256=oJaCo43CIGy2tAuMxIPT8PfSRRazJQw51PJAjqMPsH8,2742
130
- pyobo/sources/omim_ps.py,sha256=aSy1bkQJCyxgDYfA7wpxoTt3dQ-qPkCIY4X52_elHHY,1432
131
+ pyobo/sources/omim_ps.py,sha256=cqtM98a0ZW-hY8flbRKte0ODzQUR5Ob4IY1qrhK60SI,1618
131
132
  pyobo/sources/pathbank.py,sha256=SW4mEdWCX2MZYG1VJp8yLEzyBu_OmaZTtSGreldoDtQ,5387
132
133
  pyobo/sources/pfam/__init__.py,sha256=A6y2b2e0LCir4sAg5TCL5YDi6cVhl9Rk3loF5VBaxeM,150
133
134
  pyobo/sources/pfam/pfam.py,sha256=mdbR6Ak_myNpnwXQssGh6HMY_uvSk0OHM5e8RpfOG0c,1718
@@ -142,8 +143,8 @@ pyobo/sources/pharmgkb/utils.py,sha256=SFtRAg_Uxou5YpfqPTsF9we0wBMsalwybdUAm5ZS-
142
143
  pyobo/sources/pid.py,sha256=PcLNxQq-n2ETnXpmCNa4yCZKZmO9Ou-WPBotK9qJPxg,4460
143
144
  pyobo/sources/pombase.py,sha256=9ngHwyAXjIl9AKsFqUPRIbFWgvkCwcs8V2r1O_vbOyk,3696
144
145
  pyobo/sources/pubchem.py,sha256=lTsc0dgrSJ5kxlcaUcUXJydi-xsMf2fI2EcWsbW8xTU,5153
145
- pyobo/sources/reactome.py,sha256=35Qt2Ru6zF59QIxeiv4Ui6lVCf58rKeu06rcLiuANWk,5834
146
- pyobo/sources/rgd.py,sha256=RgIPWTOoRqdXX_3YMw3d6N9WDRaHLJR18gTaWc_bzk4,5316
146
+ pyobo/sources/reactome.py,sha256=yzeCCy19Hxr7KFUrg1tePjN40eZLN9G4dm4q0A7izbI,5842
147
+ pyobo/sources/rgd.py,sha256=I6HC7_GZqFPXlRIuuroOgZM7wG85jcE3Po-sry8a1XU,5194
147
148
  pyobo/sources/rhea.py,sha256=dbhyVJ1yoAQoxoWp47OKegLAmMh6qoe-7_DafJDeWrk,8164
148
149
  pyobo/sources/ror.py,sha256=IS_KUtMeKgAndrbLjhcoK8ilp-jOeiDwzGTy5R9cIwk,8882
149
150
  pyobo/sources/selventa/__init__.py,sha256=cIIDlWL9znL2r0aZIJ2r1FN3NM9io74w-He2egzJwX8,254
@@ -155,7 +156,7 @@ pyobo/sources/sgd.py,sha256=nqsETsbnF0LtwZNdf-D2F2czSBGZQnYBSamLynQmuNc,2073
155
156
  pyobo/sources/signor/__init__.py,sha256=beb_FRqsoqLVMXtDeRZAXf9Xg9UBIHBO05uPU98NajI,139
156
157
  pyobo/sources/signor/download.py,sha256=rkDJVEA6ld0z4iG14tMOcAcuRljQQ9SAJAaLdaxagz8,1053
157
158
  pyobo/sources/signor/signor_complexes.py,sha256=BGNM_kG0jtpR-i6rDSMF5XKeCllWO34zZ2Kq4FMtBk0,3802
158
- pyobo/sources/slm.py,sha256=mGJCw_ExpUERbWtFLo8FN2NgfVhEvv33m66JPbhcj2I,4246
159
+ pyobo/sources/slm.py,sha256=inQ8KpWyisRx3XpF6bOtc7OD_7Y0hjYrdDFXClrCcMs,4254
159
160
  pyobo/sources/spdx.py,sha256=JjVDNUmN6Nc8bT_2_OoqJpeKnZzuwPmdUEynTl_YAVM,2530
160
161
  pyobo/sources/umls/__init__.py,sha256=ENgNXQKhze9zyxsXjkn73-BdqmdntL4Zy1qR42GDtP8,141
161
162
  pyobo/sources/umls/__main__.py,sha256=NY6XqetgpRd_LPm95VTX2L3rJB_7h3JQttgnDJ9cFhM,108
@@ -165,46 +166,46 @@ pyobo/sources/umls/synonym_types.tsv,sha256=8TO6sY7_QHNHBGLSnqOpptykIiPUzXcXHXaW
165
166
  pyobo/sources/umls/umls.py,sha256=W8Lz649airtgWiHPvES04Teyw8JMCnCCXsSm1I3eYCU,4287
166
167
  pyobo/sources/unimod.py,sha256=Tvs4aMyp6DKH6mv9OjXK8takGzAc4c-pIhU4DIdYd1M,1292
167
168
  pyobo/sources/uniprot/__init__.py,sha256=C0df26Q0qfScCA99I4Rkl9L2oeGoOdP8-oihGcmwptE,200
168
- pyobo/sources/uniprot/uniprot.py,sha256=b2lQ1aTwyUZxbH-kWotf4GgMk9GjQXgOOXlqTci5cIw,6325
169
+ pyobo/sources/uniprot/uniprot.py,sha256=rrXlYHXYzHU2pr944AWxH3Ksa4tIUdOTVG-8g-VFEm0,6333
169
170
  pyobo/sources/uniprot/uniprot_ptm.py,sha256=oTA5fvQeE10KTHpiTw03nHdtDhP4aYcWkPTh-MxNO50,2192
170
171
  pyobo/sources/utils.py,sha256=mBIAYsLboAB6w6wPTTv1LDQBzXQu58TUlnNGJLWJwxo,1118
171
- pyobo/sources/wikipathways.py,sha256=tL6-0xKvpWYmdFhIBvZbFPCK7Ufnkre9bPtMAMuprh8,6380
172
+ pyobo/sources/wikipathways.py,sha256=SPKQaLF1PvuRMR5bySAvXXg1zhGmKgY1OfI3H1ZtQXA,6575
172
173
  pyobo/sources/zfin.py,sha256=V9c4YldKu9guAXNoFj_9fm94de7xgKWYJWUD2HNE4W4,5339
173
174
  pyobo/ssg/__init__.py,sha256=hQAELjFW_jrNX9VUaw7VIDjYQhUDicUSs-mSZzAvFSo,5224
174
175
  pyobo/ssg/base.html,sha256=_vldUCa-gL2YTNY6GgAuxNT3TgaED585vF_q7TrrjYs,2844
175
176
  pyobo/ssg/index.html,sha256=2mLBahmPetJGhZnF1-TaTXuB4CoYolpZ2nQaV5dG5nY,4346
176
177
  pyobo/ssg/term.html,sha256=tSLIJ3SYDTetK9g2EoDKyu4aHchVo1EUXk_aYhGeOKo,3869
177
178
  pyobo/ssg/typedef.html,sha256=KrdqzB6xjt689bG33D26AL-11JrvNuEkoxNNI-EG-Tg,2038
178
- pyobo/struct/__init__.py,sha256=fv1gJHCgn4n5ggInuu4QuWebeoQislVOF8QOlwAHGfg,1516
179
+ pyobo/struct/__init__.py,sha256=cx6cTB_ZCw84uz-XNV5YkM2xudpo0w2j4y_hFFFFeaU,1522
179
180
  pyobo/struct/functional/__init__.py,sha256=1Tbtt_6GoarRlgffPepitJ3QtLsrMPMbhDGoQnAKSZ4,32
180
181
  pyobo/struct/functional/dsl.py,sha256=odDX33lzSkKcRjcrsteraFSc00wIOPBHJtxXe9c9RHE,101591
181
- pyobo/struct/functional/macros.py,sha256=uzklvI_CGkDNphb0jY_N-_J_89S5ZIRnWriSkZDwBvA,13786
182
- pyobo/struct/functional/obo_to_functional.py,sha256=cei8fSwD3HlCy6Vvrba3j1hXkkIMY8kXLeuQLDCN1cs,13493
182
+ pyobo/struct/functional/macros.py,sha256=yYHGmAEMpin47U7U3S7aCC3o02khWyoON4Xgpv-gHN4,13811
183
+ pyobo/struct/functional/obo_to_functional.py,sha256=65OmttFto-tm6-7T0RQlgIKo34swVqTpz2B9ykPLNuw,13727
183
184
  pyobo/struct/functional/ontology.py,sha256=-a8jx-61NsI3dgCBEYNP-VeswAy8wWxLBlAEFMJucyI,9342
184
185
  pyobo/struct/functional/utils.py,sha256=c-XG2SJ7ChYtz7KU3K0F-T6ocMjYevei0WxlkfkkmtE,3487
185
186
  pyobo/struct/obo/__init__.py,sha256=xJAFJ4yueWBQv3BrtTuHHJ7AzOqCgOuHgKY4RQocsW0,157
186
- pyobo/struct/obo/reader.py,sha256=7e83tlkt3NTd7QbzvZ6p_8W7zRzBGyR4OZI74Hj_SX4,50797
187
+ pyobo/struct/obo/reader.py,sha256=HJ4u1c2ScA-2qxKhyKIZZo8RI2QOUSXwushK9FZGdrQ,50664
187
188
  pyobo/struct/obo/reader_utils.py,sha256=UyQVTQhXbhZ9fCizZg26o5TmeHis9-qZMKvQFwIBRgo,4423
188
189
  pyobo/struct/obograph/__init__.py,sha256=B4rNP9OCTnMXm8YpQ0rar1swn4GIw9b4gQD-IVuqHyw,452
189
190
  pyobo/struct/obograph/export.py,sha256=yk3MHulDM_SMohfwiFdeB62-XGJ2ZNgRUZGjGjiyonY,9945
190
191
  pyobo/struct/obograph/reader.py,sha256=264yVeD8a3jGx9EaGUZVxFbSQ_pwQ_6ckVw9S8wiJfM,8525
191
192
  pyobo/struct/obograph/utils.py,sha256=je0kSkC24MU9pWRHq1_K-J5jWhjWESY6NI3TpZqvZ_Q,1516
192
193
  pyobo/struct/reference.py,sha256=qgwTa-0VIoDklQ7LjlYH-mf2WG0_uO7KlHt0PSBail4,11744
193
- pyobo/struct/struct.py,sha256=0is3zpmLQoH8XNVKPDAOqYlQ7IIL7Xr7onx6auLjYJA,95115
194
- pyobo/struct/struct_utils.py,sha256=_D689bNlGg1_r-4vQQ-imVEOxzq95XBqBFxqFMV077U,40346
195
- pyobo/struct/typedef.py,sha256=iLm8-DVY0v_dK_RwoNKCeOF7nI6XlaieS2CaCHePSlI,13088
194
+ pyobo/struct/struct.py,sha256=-JaApTZ7e50bRJ2dXPdAVuJ0ElIVJIJ-HHRsVdaiMxM,96291
195
+ pyobo/struct/struct_utils.py,sha256=tqaUOYKfM3NAa9NfIrWUbaEFJuSOi05_fXPh1cNMY2w,40911
196
+ pyobo/struct/typedef.py,sha256=9qO09bK641t_N37wGHuX9WpYRwUaApk1AhlS9hjLwek,13453
196
197
  pyobo/struct/utils.py,sha256=zkpOE42JQIfkN0rc5qNENK03VIKmkf_57tHojMJK71Y,906
197
- pyobo/struct/vocabulary.py,sha256=Kt30TrZKtV8-4G-HAixxEgePhzyENvxF2aL_ff7JtT4,5243
198
+ pyobo/struct/vocabulary.py,sha256=wY_wlV17NyoPQZMiCkf72GL4bIB9gwTHIoMlx7W8Cf4,5375
198
199
  pyobo/utils/__init__.py,sha256=CANSY8vGq_6v8rWhWRIdnk-Wo5LA2R9Wjg1nqbWqLOw,17
199
200
  pyobo/utils/cache.py,sha256=x7Dnw8vHYsoslXWiV9L9ZdTu5ZueIR1ki5Ncdpb7H10,3136
200
201
  pyobo/utils/io.py,sha256=QTvGjNDkaIf78Tca23B5RW_aVweKiSsxmgwSKXcMSNo,3921
201
202
  pyobo/utils/iter.py,sha256=rYRbbaFJHxMaE0yU-rQZoCagYIrtev09uY0mxFkf5zY,1524
202
203
  pyobo/utils/misc.py,sha256=499pencyDqW9_xm0H0Cq0FhOw0MoNoq-9IVQTKh-eaE,7992
203
204
  pyobo/utils/ndex_utils.py,sha256=EokCWS00Wrk_4y8ldeQuUyaaC6yNzBg3DagUl-J2czY,2326
204
- pyobo/utils/path.py,sha256=Ep8lTRWgFU9_XF5vqJV5B3G4PcUBglIitMkaUNxjzvo,4091
205
- pyobo/version.py,sha256=r3VLmEhyOat5T5vXiDW6v0isg_jC5J9BzcsOTJg1OxY,927
206
- pyobo-0.12.10.dist-info/licenses/LICENSE,sha256=QcgJZKGxlW5BwBNnCBL8VZLVtRvXs81Ch9lJRQSIpJg,1076
207
- pyobo-0.12.10.dist-info/WHEEL,sha256=Pi5uDq5Fdo_Rr-HD5h9BiPn9Et29Y9Sh8NhcJNnFU1c,79
208
- pyobo-0.12.10.dist-info/entry_points.txt,sha256=ANgzvuwF_9_1ipCoxJtbBM6A4i2Mkt39gMPzQO6hvGs,42
209
- pyobo-0.12.10.dist-info/METADATA,sha256=PdeYdweM7uV4yHveuaDqAyD_sS7Xh3PIT9kUwZ8Kycw,22096
210
- pyobo-0.12.10.dist-info/RECORD,,
205
+ pyobo/utils/path.py,sha256=snV58UHxHO6GI2QPPE46ssR4RWozaw83V59sS_I9BY8,4109
206
+ pyobo/version.py,sha256=Eu_AwMBgCNMCmdFFfIt2yVQpL91vAj4m086WEmjvn6g,927
207
+ pyobo-0.12.12.dist-info/licenses/LICENSE,sha256=QcgJZKGxlW5BwBNnCBL8VZLVtRvXs81Ch9lJRQSIpJg,1076
208
+ pyobo-0.12.12.dist-info/WHEEL,sha256=UH59_qNuDUAa1VxQvC6fxmbl24EMw6DOIlT1yp8oeuU,78
209
+ pyobo-0.12.12.dist-info/entry_points.txt,sha256=ANgzvuwF_9_1ipCoxJtbBM6A4i2Mkt39gMPzQO6hvGs,42
210
+ pyobo-0.12.12.dist-info/METADATA,sha256=mC0mNzJrMLuFLelXKTY04R8Dm1nlU5rcXZsBA_M3YYI,22783
211
+ pyobo-0.12.12.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.8.17
2
+ Generator: uv 0.9.6
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any