bioversions 0.5.320__py3-none-any.whl → 0.7.1__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 (85) hide show
  1. bioversions/__init__.py +7 -3
  2. bioversions/__main__.py +0 -2
  3. bioversions/charts.py +3 -7
  4. bioversions/cli.py +3 -5
  5. bioversions/py.typed +0 -0
  6. bioversions/resources/__init__.py +18 -7
  7. bioversions/resources/update.py +20 -12
  8. bioversions/resources/versions.json +20536 -0
  9. bioversions/slack_client.py +2 -5
  10. bioversions/sources/__init__.py +45 -17
  11. bioversions/sources/antibodyregistry.py +9 -6
  12. bioversions/sources/bigg.py +5 -7
  13. bioversions/sources/biogrid.py +0 -2
  14. bioversions/sources/cellosaurus.py +3 -5
  15. bioversions/sources/chebi.py +1 -3
  16. bioversions/sources/chembl.py +3 -3
  17. bioversions/sources/chemidplus.py +1 -3
  18. bioversions/sources/civic.py +46 -0
  19. bioversions/sources/complexportal.py +0 -2
  20. bioversions/sources/daily.py +0 -2
  21. bioversions/sources/depmap.py +1 -3
  22. bioversions/sources/dgi.py +9 -12
  23. bioversions/sources/disgenet.py +1 -3
  24. bioversions/sources/drugbank.py +2 -4
  25. bioversions/sources/drugcentral.py +2 -4
  26. bioversions/sources/ensembl.py +4 -6
  27. bioversions/sources/expasy.py +1 -4
  28. bioversions/sources/flybase.py +0 -2
  29. bioversions/sources/gtdb.py +35 -0
  30. bioversions/sources/guidetopharmacology.py +3 -4
  31. bioversions/sources/hgnc.py +13 -14
  32. bioversions/sources/homologene.py +0 -2
  33. bioversions/sources/icd10.py +30 -0
  34. bioversions/sources/icd11.py +30 -0
  35. bioversions/sources/icf.py +30 -0
  36. bioversions/sources/intact.py +0 -2
  37. bioversions/sources/interpro.py +1 -3
  38. bioversions/sources/itis.py +8 -15
  39. bioversions/sources/kegg.py +7 -6
  40. bioversions/sources/mesh.py +10 -5
  41. bioversions/sources/mgi.py +0 -2
  42. bioversions/sources/mirbase.py +13 -7
  43. bioversions/sources/moalmanac.py +0 -2
  44. bioversions/sources/msigdb.py +0 -2
  45. bioversions/sources/ncit.py +1 -4
  46. bioversions/sources/npass.py +0 -2
  47. bioversions/sources/obo.py +4 -6
  48. bioversions/sources/ols.py +6 -8
  49. bioversions/sources/omim.py +33 -0
  50. bioversions/sources/oncotree.py +4 -4
  51. bioversions/sources/pathbank.py +0 -2
  52. bioversions/sources/pathwaycommons.py +0 -2
  53. bioversions/sources/pfam.py +0 -2
  54. bioversions/sources/pombase.py +0 -2
  55. bioversions/sources/pr.py +1 -3
  56. bioversions/sources/pubchem.py +0 -2
  57. bioversions/sources/reactome.py +0 -2
  58. bioversions/sources/rfam.py +0 -2
  59. bioversions/sources/rgd.py +1 -3
  60. bioversions/sources/rhea.py +1 -6
  61. bioversions/sources/rxnorm.py +1 -3
  62. bioversions/sources/sgd.py +0 -2
  63. bioversions/sources/signor.py +36 -0
  64. bioversions/sources/slm.py +4 -3
  65. bioversions/sources/stringdb.py +2 -4
  66. bioversions/sources/umls.py +0 -2
  67. bioversions/sources/uniprot.py +1 -3
  68. bioversions/sources/unversioned.py +0 -2
  69. bioversions/sources/wikipathways.py +0 -2
  70. bioversions/sources/zfin.py +0 -2
  71. bioversions/templates/base.html +28 -0
  72. bioversions/templates/home.html +60 -0
  73. bioversions/twitter_client.py +5 -8
  74. bioversions/utils.py +40 -32
  75. bioversions/version.py +3 -5
  76. bioversions/wsgi.py +2 -4
  77. bioversions-0.7.1.dist-info/METADATA +393 -0
  78. bioversions-0.7.1.dist-info/RECORD +81 -0
  79. bioversions-0.7.1.dist-info/WHEEL +4 -0
  80. {bioversions-0.5.320.dist-info → bioversions-0.7.1.dist-info}/entry_points.txt +1 -0
  81. {bioversions-0.5.320.dist-info → bioversions-0.7.1.dist-info/licenses}/LICENSE +1 -1
  82. bioversions-0.5.320.dist-info/METADATA +0 -166
  83. bioversions-0.5.320.dist-info/RECORD +0 -72
  84. bioversions-0.5.320.dist-info/WHEEL +0 -5
  85. bioversions-0.5.320.dist-info/top_level.txt +0 -1
@@ -0,0 +1,393 @@
1
+ Metadata-Version: 2.4
2
+ Name: bioversions
3
+ Version: 0.7.1
4
+ Summary: Get the current version for biological databases
5
+ Keywords: snekpack,cookiecutter,databases,biological databases,biomedical databases
6
+ Author: Charles Tapley Hoyt
7
+ Author-email: Charles Tapley Hoyt <cthoyt@gmail.com>
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Framework :: Pytest
15
+ Classifier: Framework :: tox
16
+ Classifier: Framework :: Sphinx
17
+ Classifier: Natural Language :: English
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3 :: Only
24
+ Classifier: Typing :: Typed
25
+ Requires-Dist: requests
26
+ Requires-Dist: beautifulsoup4
27
+ Requires-Dist: cachier>=2.2.1
28
+ Requires-Dist: pystow>=0.1.0
29
+ Requires-Dist: click
30
+ Requires-Dist: click-default-group
31
+ Requires-Dist: dataclasses-json
32
+ Requires-Dist: tabulate
33
+ Requires-Dist: more-click
34
+ Requires-Dist: pyyaml
35
+ Requires-Dist: tqdm
36
+ Requires-Dist: bioregistry[align]>=0.10.0
37
+ Requires-Dist: lxml
38
+ Requires-Dist: pydantic>=2.0
39
+ Requires-Dist: psycopg2-binary
40
+ Requires-Dist: matplotlib ; extra == 'charts'
41
+ Requires-Dist: seaborn ; extra == 'charts'
42
+ Requires-Dist: sphinx>=8 ; extra == 'docs'
43
+ Requires-Dist: sphinx-rtd-theme>=3.0 ; extra == 'docs'
44
+ Requires-Dist: sphinx-click ; extra == 'docs'
45
+ Requires-Dist: sphinx-automodapi ; extra == 'docs'
46
+ Requires-Dist: slack-sdk ; extra == 'slack'
47
+ Requires-Dist: pytest ; extra == 'tests'
48
+ Requires-Dist: coverage[toml] ; extra == 'tests'
49
+ Requires-Dist: tweepy ; extra == 'twitter'
50
+ Requires-Dist: flask ; extra == 'web'
51
+ Requires-Dist: bootstrap-flask ; extra == 'web'
52
+ Maintainer: Charles Tapley Hoyt
53
+ Maintainer-email: Charles Tapley Hoyt <cthoyt@gmail.com>
54
+ Requires-Python: >=3.10
55
+ Project-URL: Bug Tracker, https://github.com/biopragmatics/bioversions/issues
56
+ Project-URL: Documentation, https://bioversions.readthedocs.io
57
+ Project-URL: Funding, https://github.com/sponsors/cthoyt
58
+ Project-URL: Homepage, https://github.com/biopragmatics/bioversions
59
+ Project-URL: Repository, https://github.com/biopragmatics/bioversions.git
60
+ Provides-Extra: charts
61
+ Provides-Extra: docs
62
+ Provides-Extra: slack
63
+ Provides-Extra: tests
64
+ Provides-Extra: twitter
65
+ Provides-Extra: web
66
+ Description-Content-Type: text/markdown
67
+
68
+ <p align="center">
69
+ <img src="https://github.com/biopragmatics/bioversions/raw/main/docs/source/logo.png" height="150">
70
+ </p>
71
+
72
+ <h1 align="center">
73
+ Bioversions
74
+ </h1>
75
+
76
+ <p align="center">
77
+ <a href="https://github.com/biopragmatics/bioversions/actions/workflows/tests.yml">
78
+ <img alt="Tests" src="https://github.com/biopragmatics/bioversions/actions/workflows/tests.yml/badge.svg" /></a>
79
+ <a href="https://pypi.org/project/bioversions">
80
+ <img alt="PyPI" src="https://img.shields.io/pypi/v/bioversions" /></a>
81
+ <a href="https://pypi.org/project/bioversions">
82
+ <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/bioversions" /></a>
83
+ <a href="https://github.com/biopragmatics/bioversions/blob/main/LICENSE">
84
+ <img alt="PyPI - License" src="https://img.shields.io/pypi/l/bioversions" /></a>
85
+ <a href='https://bioversions.readthedocs.io/en/latest/?badge=latest'>
86
+ <img src='https://readthedocs.org/projects/bioversions/badge/?version=latest' alt='Documentation Status' /></a>
87
+ <a href="https://codecov.io/gh/biopragmatics/bioversions/branch/main">
88
+ <img src="https://codecov.io/gh/biopragmatics/bioversions/branch/main/graph/badge.svg" alt="Codecov status" /></a>
89
+ <a href="https://github.com/cthoyt/cookiecutter-python-package">
90
+ <img alt="Cookiecutter template from @cthoyt" src="https://img.shields.io/badge/Cookiecutter-snekpack-blue" /></a>
91
+ <a href="https://github.com/astral-sh/ruff">
92
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff" style="max-width:100%;"></a>
93
+ <a href="https://github.com/biopragmatics/bioversions/blob/main/.github/CODE_OF_CONDUCT.md">
94
+ <img src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg" alt="Contributor Covenant"/></a>
95
+ <a href="https://zenodo.org/badge/latestdoi/318852276">
96
+ <img src="https://zenodo.org/badge/318852276.svg" alt="DOI"></a>
97
+ <a href="https://github.com/biopragmatics/bioregistry">
98
+ <img alt="Powered by the Bioregistry" src="https://img.shields.io/static/v1?label=Powered%20by&message=Bioregistry&color=BA274A&style=flat&logo=image/png;base64,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" /></a>
99
+ </p>
100
+
101
+ What's the current version for each biological database?
102
+
103
+ A daily updated static listing of all current versions (that are incorporated)
104
+ can be found at https://biopragmatics.github.io/bioversions.
105
+
106
+ ## 💪 Getting Started
107
+
108
+ ```python
109
+ import bioversions
110
+
111
+ assert bioversions.get_version('biogrid') == '4.2.192', 'This was true on Dec 5th, 2020!'
112
+
113
+ # If you want more information, use the resolve() function
114
+ bioversion = bioversions.resolve('biogrid')
115
+ assert bioversion.version == '4.2.192'
116
+ ```
117
+
118
+ By default, the results are cached and only refreshed once per day with the help
119
+ of [`cachier`](https://github.com/shaypal5/cachier). The cache is stored in
120
+ `~/.data/bioversions`. The cache location can be overridden by setting the
121
+ `BIOVERSIONS_HOME` environment variable via
122
+ [`pystow`](https://github.com/cthoyt/pystow).
123
+
124
+ ## 🌐 Web Application
125
+
126
+ While https://biopragmatics.github.io/bioversions provides a daily updated
127
+ static listing of the database, you can run a dynamic version with an API from
128
+ your shell with:
129
+
130
+ ```bash
131
+ $ bioversions web
132
+ ```
133
+
134
+ Options can be listed with `bioversions web --help`.
135
+
136
+ You can navigate to http://localhost:5000 to see all versions as HTML or
137
+ programmatically resolve given databases with the
138
+ `http://localhost:5000/database/<name>` endpoint like in the following:
139
+
140
+ ```python
141
+ import requests
142
+
143
+ res = requests.get('http://localhost:5000/database/biogrid').json()
144
+ assert res['success']
145
+ assert res['result']['name'] == 'BioGRID'
146
+ assert res['result']['version'] == '4.2.192', 'This was true on Dec 5th, 2020!'
147
+ ```
148
+
149
+ ## CLI Usage
150
+
151
+ You can use `bioversions get` to incorporate the latest versions in your shell
152
+ scripts or REPL usage like in:
153
+
154
+ ```bash
155
+ $ wget "https://downloads.thebiogrid.org/Download/BioGRID/Release-Archive/BIOGRID-$(bioversions get biogrid)/BIOGRID-ALL-$(bioversions get biogrid).mitab.zip"
156
+ ```
157
+
158
+ ## 🚀 Installation
159
+
160
+ The most recent release can be installed from
161
+ [PyPI](https://pypi.org/project/bioversions/) with:
162
+
163
+ ```console
164
+ python3 -m pip install bioversions
165
+ ```
166
+
167
+ The most recent code and data can be installed directly from GitHub with:
168
+
169
+ ```console
170
+ python3 -m pip install git+https://github.com/biopragmatics/bioversions.git
171
+ ```
172
+
173
+ ## 👐 Contributing
174
+
175
+ Contributions, whether filing an issue, making a pull request, or forking, are
176
+ appreciated. See
177
+ [CONTRIBUTING.md](https://github.com/biopragmatics/bioversions/blob/master/.github/CONTRIBUTING.md)
178
+ for more information on getting involved.
179
+
180
+ To add more databases to the list, you can create a new submodule of
181
+ `bioversions.sources` and extend the `bioversions.utils.Getter` class to
182
+ identify the most recent version for your target database. See
183
+ `bioversions.sources.biogrid` as an example.
184
+
185
+ ## 👋 Attribution
186
+
187
+ ### ⚖️ License
188
+
189
+ The code in this package is licensed under the MIT License.
190
+
191
+ <!--
192
+ ### 📖 Citation
193
+
194
+ Citation goes here!
195
+ -->
196
+
197
+ ### 🎁 Support
198
+
199
+ The Bioversions service was originally developed by the
200
+ [INDRA Lab](https://indralab.github.io), a part of the
201
+ [Laboratory of Systems Pharmacology](https://hits.harvard.edu/the-program/laboratory-of-systems-pharmacology/about/)
202
+ and the
203
+ [Harvard Program in Therapeutic Science (HiTS)](https://hits.harvard.edu) at
204
+ [Harvard Medical School](https://hms.harvard.edu/).
205
+
206
+ ### 💰 Funding
207
+
208
+ The development of this package was partially funded by the DARPA Young Faculty
209
+ Award W911NF2010255 (PI: Benjamin M. Gyori).
210
+
211
+ ### 🍪 Cookiecutter
212
+
213
+ This package was created with
214
+ [@audreyfeldroy](https://github.com/audreyfeldroy)'s
215
+ [cookiecutter](https://github.com/cookiecutter/cookiecutter) package using
216
+ [@cthoyt](https://github.com/cthoyt)'s
217
+ [cookiecutter-snekpack](https://github.com/cthoyt/cookiecutter-snekpack)
218
+ template.
219
+
220
+ ## 🛠️ For Developers
221
+
222
+ <details>
223
+ <summary>See developer instructions</summary>
224
+
225
+ The final section of the README is for if you want to get involved by making a
226
+ code contribution.
227
+
228
+ ### Development Installation
229
+
230
+ To install in development mode, use the following:
231
+
232
+ ```console
233
+ $ git clone git+https://github.com/biopragmatics/bioversions.git
234
+ $ cd bioversions
235
+ $ uv --preview pip install -e .
236
+ ```
237
+
238
+ Alternatively, install using legacy pip with `UV_PREVIEW` mode enabled until the
239
+ uv build backend becomes a stable feature:
240
+
241
+ ```console
242
+ $ UV_PREVIEW=1 python3 -m pip install -e .
243
+ ```
244
+
245
+ ### Updating Package Boilerplate
246
+
247
+ This project uses `cruft` to keep boilerplate (i.e., configuration, contribution
248
+ guidelines, documentation configuration) up-to-date with the upstream
249
+ cookiecutter package. Update with the following:
250
+
251
+ ```console
252
+ python3 -m pip install cruft
253
+ cruft update
254
+ ```
255
+
256
+ More info on Cruft's update command is available
257
+ [here](https://github.com/cruft/cruft?tab=readme-ov-file#updating-a-project).
258
+
259
+ ### 🥼 Testing
260
+
261
+ After cloning the repository and installing `tox` with
262
+ `python3 -m pip install tox tox-uv`, the unit tests in the `tests/` folder can
263
+ be run reproducibly with:
264
+
265
+ ```console
266
+ tox -e py
267
+ ```
268
+
269
+ Additionally, these tests are automatically re-run with each commit in a
270
+ [GitHub Action](https://github.com/biopragmatics/bioversions/actions?query=workflow%3ATests).
271
+
272
+ ### 📖 Building the Documentation
273
+
274
+ The documentation can be built locally using the following:
275
+
276
+ ```console
277
+ git clone git+https://github.com/biopragmatics/bioversions.git
278
+ cd bioversions
279
+ tox -e docs
280
+ open docs/build/html/index.html
281
+ ```
282
+
283
+ The documentation automatically installs the package as well as the `docs` extra
284
+ specified in the [`pyproject.toml`](pyproject.toml). `sphinx` plugins like
285
+ `texext` can be added there. Additionally, they need to be added to the
286
+ `extensions` list in [`docs/source/conf.py`](docs/source/conf.py).
287
+
288
+ The documentation can be deployed to [ReadTheDocs](https://readthedocs.io) using
289
+ [this guide](https://docs.readthedocs.io/en/stable/intro/import-guide.html). The
290
+ [`.readthedocs.yml`](.readthedocs.yml) YAML file contains all the configuration
291
+ you'll need. You can also set up continuous integration on GitHub to check not
292
+ only that Sphinx can build the documentation in an isolated environment (i.e.,
293
+ with `tox -e docs-test`) but also that
294
+ [ReadTheDocs can build it too](https://docs.readthedocs.io/en/stable/pull-requests.html).
295
+
296
+ #### Configuring ReadTheDocs
297
+
298
+ 1. Log in to ReadTheDocs with your GitHub account to install the integration at
299
+ https://readthedocs.org/accounts/login/?next=/dashboard/
300
+ 2. Import your project by navigating to https://readthedocs.org/dashboard/import
301
+ then clicking the plus icon next to your repository
302
+ 3. You can rename the repository on the next screen using a more stylized name
303
+ (i.e., with spaces and capital letters)
304
+ 4. Click next, and you're good to go!
305
+
306
+ ### 📦 Making a Release
307
+
308
+ #### Configuring Zenodo
309
+
310
+ [Zenodo](https://zenodo.org) is a long-term archival system that assigns a DOI
311
+ to each release of your package.
312
+
313
+ 1. Log in to Zenodo via GitHub with this link:
314
+ https://zenodo.org/oauth/login/github/?next=%2F. This brings you to a page
315
+ that lists all of your organizations and asks you to approve installing the
316
+ Zenodo app on GitHub. Click "grant" next to any organizations you want to
317
+ enable the integration for, then click the big green "approve" button. This
318
+ step only needs to be done once.
319
+ 2. Navigate to https://zenodo.org/account/settings/github/, which lists all of
320
+ your GitHub repositories (both in your username and any organizations you
321
+ enabled). Click the on/off toggle for any relevant repositories. When you
322
+ make a new repository, you'll have to come back to this
323
+
324
+ After these steps, you're ready to go! After you make "release" on GitHub (steps
325
+ for this are below), you can navigate to
326
+ https://zenodo.org/account/settings/github/repository/biopragmatics/bioversions
327
+ to see the DOI for the release and link to the Zenodo record for it.
328
+
329
+ #### Registering with the Python Package Index (PyPI)
330
+
331
+ You only have to do the following steps once.
332
+
333
+ 1. Register for an account on the
334
+ [Python Package Index (PyPI)](https://pypi.org/account/register)
335
+ 2. Navigate to https://pypi.org/manage/account and make sure you have verified
336
+ your email address. A verification email might not have been sent by default,
337
+ so you might have to click the "options" dropdown next to your address to get
338
+ to the "re-send verification email" button
339
+ 3. 2-Factor authentication is required for PyPI since the end of 2023 (see this
340
+ [blog post from PyPI](https://blog.pypi.org/posts/2023-05-25-securing-pypi-with-2fa/)).
341
+ This means you have to first issue account recovery codes, then set up
342
+ 2-factor authentication
343
+ 4. Issue an API token from https://pypi.org/manage/account/token
344
+
345
+ #### Configuring your machine's connection to PyPI
346
+
347
+ You have to do the following steps once per machine.
348
+
349
+ ```console
350
+ $ uv tool install keyring
351
+ $ keyring set https://upload.pypi.org/legacy/ __token__
352
+ $ keyring set https://test.pypi.org/legacy/ __token__
353
+ ```
354
+
355
+ Note that this deprecates previous workflows using `.pypirc`.
356
+
357
+ #### Uploading to PyPI
358
+
359
+ After installing the package in development mode and installing `tox` with
360
+ `python3 -m pip install tox tox-uv`, run the following from the console:
361
+
362
+ ```console
363
+ tox -e finish
364
+ ```
365
+
366
+ This script does the following:
367
+
368
+ 1. Uses [bump-my-version](https://github.com/callowayproject/bump-my-version) to
369
+ switch the version number in the `pyproject.toml`, `CITATION.cff`,
370
+ `src/bioversions/version.py`, and
371
+ [`docs/source/conf.py`](docs/source/conf.py) to not have the `-dev` suffix
372
+ 2. Packages the code in both a tar archive and a wheel using
373
+ [`uv build`](https://docs.astral.sh/uv/guides/publish/#building-your-package)
374
+ 3. Uploads to PyPI using
375
+ [`uv publish`](https://docs.astral.sh/uv/guides/publish/#publishing-your-package).
376
+ 4. Push to GitHub. You'll need to make a release going with the commit where the
377
+ version was bumped.
378
+ 5. Bump the version to the next patch. If you made big changes and want to bump
379
+ the version by minor, you can use `tox -e bumpversion -- minor` after.
380
+
381
+ #### Releasing on GitHub
382
+
383
+ 1. Navigate to https://github.com/biopragmatics/bioversions/releases/new to
384
+ draft a new release
385
+ 2. Click the "Choose a Tag" dropdown and select the tag corresponding to the
386
+ release you just made
387
+ 3. Click the "Generate Release Notes" button to get a quick outline of recent
388
+ changes. Modify the title and description as you see fit
389
+ 4. Click the big green "Publish Release" button
390
+
391
+ This will trigger Zenodo to assign a DOI to your release as well.
392
+
393
+ </details>
@@ -0,0 +1,81 @@
1
+ bioversions/resources/update.py,sha256=6ed4ffb5da7434a05176c85fe15b8e7bebc75aad1042d7165857174bc4147cb5,3626
2
+ bioversions/resources/__init__.py,sha256=371c3ac3afe0442e01fc9c2f6c000aa4d476ac8a6435167952404831d36a95d6,1659
3
+ bioversions/resources/versions.json,sha256=2c960d1ff939ffa0820ea5e8bd1313b74b1f435c681474b703eed7f98e8949ea,500208
4
+ bioversions/wsgi.py,sha256=f85ee95198a9710823d53fdffbd40264155d43db19047f77c7787187d87b9255,794
5
+ bioversions/py.typed,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
6
+ bioversions/sources/mesh.py,sha256=5ea8cf53950980e1d5736f1cffa37b46225dd45f51a1418f5c69a621a368a6f3,971
7
+ bioversions/sources/rfam.py,sha256=3c8de33a8920baac6789fd07160da00752f524ed25ad045b3b48a24716eda5a8,540
8
+ bioversions/sources/bigg.py,sha256=895af1caf2a2108517b3a14cd8088b0d86bec980cd18c38d9a222ffd1e8a060e,661
9
+ bioversions/sources/itis.py,sha256=99a480060d52ac6e06404be347080c28af56e984e80cc4763f0a98266212a1df,582
10
+ bioversions/sources/chembl.py,sha256=35cfa0149a5eac1c8efe2577b43aa47e359874558ef48ce227022d7bd0b60932,1513
11
+ bioversions/sources/daily.py,sha256=501fcf689d9b11035b08255c208c5bca0bb631f79e9a8fee3d268f85d07b4033,256
12
+ bioversions/sources/stringdb.py,sha256=9afd81dd24d02469cce66e246cb6f696e4a501ba3e7e8dc7aff0f022563a37b2,787
13
+ bioversions/sources/slm.py,sha256=84fe81b16cf8cb3cdc817f4ed56482364bb46a9d3af1f01c3726273b26d106d6,766
14
+ bioversions/sources/pathbank.py,sha256=620621044418e05d3d720ed2e01704107e260fa97a2c38ee0d1bf507f7bce62f,693
15
+ bioversions/sources/dgi.py,sha256=8b613bedea979b8bbadfcbe4b2fd539e4d29deccf329d936c83a72626d8808bc,940
16
+ bioversions/sources/kegg.py,sha256=748eee42969987ae6b64e76eb6a71734e9319f71c6c03373697c948718937515,905
17
+ bioversions/sources/mirbase.py,sha256=ab70baf82cbebc42f22424029e9838a6f7a846b9587ea81be37d779871b90a9e,996
18
+ bioversions/sources/ncit.py,sha256=eabc33412087108799d70b76ca60b27debcceb8e3bf6782ba41107c5f2dcda87,1015
19
+ bioversions/sources/pfam.py,sha256=a2509a19315b2524a4974101d2215794c639b2ede25832449819524f4c3efff8,975
20
+ bioversions/sources/ols.py,sha256=65eb7b050c25b98f1fd3446f0dccaeec4560e08b1c9eb871346e14261c2c2fc6,2697
21
+ bioversions/sources/wikipathways.py,sha256=493c3c062bdcdc864b608c7e2b0a711cb526453a8d7c79b4c10cb00e68bed30b,798
22
+ bioversions/sources/intact.py,sha256=06e67eda7e8eededc74f63eb1c73db0648665dae78323d7d92625c76ff4f7c05,596
23
+ bioversions/sources/icf.py,sha256=0580247e61d6b50b0c08d5331a97d188a5671dda4333298628bc327af313c08a,720
24
+ bioversions/sources/moalmanac.py,sha256=0cca2d4980f8b0639365a2609ff88f7947c47618e5826ce828a2d84be2fa4eba,749
25
+ bioversions/sources/expasy.py,sha256=e42f66f4e93281aab60fbceeb939e4383e15db8414e02f3d95dced7cbb62aa72,771
26
+ bioversions/sources/interpro.py,sha256=1fa75923bd60517a3b2f661e7c24e2243e2ab90440bf2621e670c36e1da2baf1,1238
27
+ bioversions/sources/chemidplus.py,sha256=cc93605ba1d416c5939fdfcf62e01f1449d999284b1af7beee0185696b231702,1194
28
+ bioversions/sources/cellosaurus.py,sha256=d17ae067aade4a433c0f350b26d681dda881603d1057734750b67ef19950ee01,975
29
+ bioversions/sources/gtdb.py,sha256=95bb664a1e2e872ebe55efec9703be63bff01d15724aea1fd48feb47e150d399,1001
30
+ bioversions/sources/oncotree.py,sha256=69b039f07e37800fd3b623816b00595333caede9403d8a9620fee515de8aa8ee,1032
31
+ bioversions/sources/rxnorm.py,sha256=ba8a68262850132282d79c6ab5293f4997c496672ca614b26da8e22ee6856253,1010
32
+ bioversions/sources/__init__.py,sha256=0b99d733a9b78ad746a5b8f970d9874c2b13fe81fc60e22412e2f9fc243a166d,6303
33
+ bioversions/sources/mgi.py,sha256=4d7f95d3171616692db2c8d195d8d86f9f751c2b6885e63df70d054c7d9c2199,841
34
+ bioversions/sources/civic.py,sha256=3eee261f77648892b6a61c3aeeddfff2bf94e63dee9fc91fcbb22a2f44c05dea,1132
35
+ bioversions/sources/depmap.py,sha256=00b9fb914b27902ef2023f5c2d899a4235829b6b20d3045643e4fbe8deea4168,641
36
+ bioversions/sources/flybase.py,sha256=2f5aacd0e1743a18dd927c15e837ef9e79713f7ed9d3d863ba4fa9cf5527d863,754
37
+ bioversions/sources/icd11.py,sha256=6bc929c0fe8fdfe428c23e9f185165b1b2f589b85a58de3cc1ecffa80362084d,723
38
+ bioversions/sources/pr.py,sha256=6c440e95057d35b7d0273d9c26bc2e0dec45cfe22f541e44b5645ebe66f4ddd6,876
39
+ bioversions/sources/sgd.py,sha256=3e05c0bf0aa5c78f10b869e75473a5d2e034323b84ec89748e2055e1f69835d0,1084
40
+ bioversions/sources/hgnc.py,sha256=5b2d0cf1a4fe48ab0c2945b111d3e95acdf64a32fb519ca200d2ed0900b85a9d,1099
41
+ bioversions/sources/msigdb.py,sha256=8689c6234a84ae6e70b19b2bd21c165e2c37d83de7e71c47e605f7c54121de9a,778
42
+ bioversions/sources/pathwaycommons.py,sha256=f7c9ef2ed143a9c1ec755c6dd8bbbc5797682df4ae3ae621c2980fa80ec16619,661
43
+ bioversions/sources/icd10.py,sha256=f3ace5f72c5e532cb758a8104b9e48fb56cafa47a01f9f6c6458b06062856805,703
44
+ bioversions/sources/reactome.py,sha256=12ae2e1cc763c323eaab9d90ec4f6cbdcea1cd9645b40e6d32d93c76333006f7,596
45
+ bioversions/sources/antibodyregistry.py,sha256=5c29963e1d7bd40780582ce9539d6120bd593d0cda6f3b763b08af876a2bef8f,713
46
+ bioversions/sources/rhea.py,sha256=ddcb28b84fa2a76520ecc123703e785ff3d4bccb93638af442d3883f54fbd57e,806
47
+ bioversions/sources/biogrid.py,sha256=15c400f0020ded3c167704506ffaf985467087d66d975dc67865ca5efd4a71a8,734
48
+ bioversions/sources/unversioned.py,sha256=c2f328c3bca5b9bbd0ede38ce93bd5a8d1cd079757902865f6c83c3ed05794f4,53
49
+ bioversions/sources/obo.py,sha256=727b7470ba4cf30b421b5e1eebe758bbadeac57e9801df4fceb13948a27ff0b7,1713
50
+ bioversions/sources/zfin.py,sha256=dcea33de50f1f09e36380a3253c78923e7d19cc46263250c723e1f0c4e4354b4,683
51
+ bioversions/sources/npass.py,sha256=b516902495d04397e054b51a51046b11432f37deb7046758d7337ffca804d616,714
52
+ bioversions/sources/uniprot.py,sha256=c3e16b68fc8a65e12d9a3b3288fedbd9a8e0e7b47f0a69f0fb032fb072c68a1b,924
53
+ bioversions/sources/homologene.py,sha256=4da5b4037dcf2d2e3cd38ceb45664a0e6a3fcf01332bd6f15ffcc089a526779c,622
54
+ bioversions/sources/pombase.py,sha256=e65348dc0aaed5f9c35049c5d117ee7103abf8714f620afbfa5e084eded1c986,766
55
+ bioversions/sources/disgenet.py,sha256=3c02c84643c1913d9cb2b37e1679fe019cc273d67633685e904fbf16ba84f8bc,739
56
+ bioversions/sources/complexportal.py,sha256=1adea98029a1aef5e13d7038812734ed37bfa2c9e8f6038cb3c8216b4eff1d19,671
57
+ bioversions/sources/umls.py,sha256=ff9cfd631a1d39804a29a901db6da32e68e6e1c526e04e30a1be82359ea155aa,817
58
+ bioversions/sources/guidetopharmacology.py,sha256=5806ac03a665caa262a8fef456bac21298b6f895bb50cad4ba702e13aa5393f8,1377
59
+ bioversions/sources/omim.py,sha256=7aad8a3615748f5171db47098a1cdbec36b1e8596e0e857fe360dc5320748a65,916
60
+ bioversions/sources/rgd.py,sha256=64f6cfd7bff88004699b00832560ef033f14f2977e70684ebef546b431a04d23,766
61
+ bioversions/sources/drugcentral.py,sha256=c07db12fe096a5e54fdb4e360a75a6d57fb0dd826fda6e458a04f0d61b7570b8,1116
62
+ bioversions/sources/signor.py,sha256=f0a0bd043c1344027e31fe8fc4e5922f44e86044ca16370e6d66368161f05c83,969
63
+ bioversions/sources/ensembl.py,sha256=994779fcbb08ea8494e1af0324b49a9bd9649dd7fa65fba7d156b1648c9edad2,737
64
+ bioversions/sources/pubchem.py,sha256=57e6f33479eef0935322abde994efe3292f91c7c6bb1889c5724c99ebd7d72f9,526
65
+ bioversions/sources/drugbank.py,sha256=599c215452b5e8219e2c31423c2c6d1c7c867848309696c834b9b5f3af1f3f16,994
66
+ bioversions/sources/chebi.py,sha256=53b5cdbb8810bb790027764284d97efa01ee12f7c259902e381ac3d3f7615616,833
67
+ bioversions/__init__.py,sha256=7f04aa5bf8ba4ceb843188a32f6f09dfb20b2300f067284d35a1fb0441eaba38,194
68
+ bioversions/__main__.py,sha256=4e799066f5fbbe005dc99aee68c4146b3d8572ec52891b82ad0f4e1f2de96227,108
69
+ bioversions/utils.py,sha256=c79778a75d953250f917cfb2fc9e89139b1cb7b04257577eccefb2e5b49a9923,10342
70
+ bioversions/charts.py,sha256=dff05cc80031529e1b06af54c0011d241a383278319d0c6fa90b3e6ad4476332,2419
71
+ bioversions/twitter_client.py,sha256=f5de409b4152b3bfc4806763931aa9a3df2f3e2afdae32172318593262e02b94,1285
72
+ bioversions/cli.py,sha256=939b0f29af9f7fc8aeba207b95d46f1cf59c659d15deccc348cabdcf07486bce,1563
73
+ bioversions/version.py,sha256=b6eea3f6d1530d8ce55d55b05e1cdb036312d86f2870a544d8f6ffdf0e7c17af,585
74
+ bioversions/templates/home.html,sha256=cfdf054ac94244fd8adfdc5b1e948f824d7d8fb676d4f49b44602d69723431dd,2756
75
+ bioversions/templates/base.html,sha256=00a07a693dfd53d56d38cdb3bd6fd49b922060ef4acbe08ba41cb1cb95d73b93,713
76
+ bioversions/slack_client.py,sha256=a7d1e69f244256e42f8ded116dd0caf50b91952c3ffd6c05089f017bd7089333,1209
77
+ bioversions-0.7.1.dist-info/licenses/LICENSE,sha256=41c80964a1b1956e41c013670812fc5592d5b51bd7b3cd4287d949450488a498,1076
78
+ bioversions-0.7.1.dist-info/WHEEL,sha256=4e5918c46f66f9d1af964bb215c4c92fb586d1f50a8cc3999af24bf5ac283f87,79
79
+ bioversions-0.7.1.dist-info/entry_points.txt,sha256=4cdd92beb5155987fe3fa990cbaa0268658f0e30d27ed349fada88c48b97484e,54
80
+ bioversions-0.7.1.dist-info/METADATA,sha256=23eb6122fcc15833a895ddf305f2bcf1759f4237076e5339a3e78bb2db230c0b,18807
81
+ bioversions-0.7.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: uv 0.5.18
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -1,2 +1,3 @@
1
1
  [console_scripts]
2
2
  bioversions = bioversions.cli:main
3
+
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Charles Tapley Hoyt
3
+ Copyright (c) 2024 Charles Tapley Hoyt
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal