bge-python-sdk 0.7.0__tar.gz → 2.0.0__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 (129) hide show
  1. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/LICENSE +1 -1
  2. bge_python_sdk-2.0.0/MANIFEST.in +10 -0
  3. bge_python_sdk-2.0.0/PKG-INFO +180 -0
  4. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/README.md +1 -1
  5. bge_python_sdk-2.0.0/bge_python_sdk.egg-info/PKG-INFO +180 -0
  6. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bge_python_sdk.egg-info/SOURCES.txt +41 -6
  7. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bge_python_sdk.egg-info/entry_points.txt +0 -1
  8. bge_python_sdk-2.0.0/bge_python_sdk.egg-info/requires.txt +15 -0
  9. bge_python_sdk-2.0.0/bge_python_sdk.egg-info/top_level.txt +6 -0
  10. bge_python_sdk-2.0.0/bgesdk/__init__.py +5 -0
  11. bge_python_sdk-2.0.0/bgesdk/__main__.py +66 -0
  12. bge_python_sdk-2.0.0/bgesdk/api/__init__.py +5 -0
  13. bge_python_sdk-2.0.0/bgesdk/api/api.py +29 -0
  14. bge_python_sdk-2.0.0/bgesdk/api/base.py +210 -0
  15. bge_python_sdk-2.0.0/bgesdk/api/file.py +420 -0
  16. bge_python_sdk-2.0.0/bgesdk/api/microbiome.py +143 -0
  17. bge_python_sdk-2.0.0/bgesdk/api/misc.py +224 -0
  18. bge_python_sdk-2.0.0/bgesdk/api/model.py +312 -0
  19. bge_python_sdk-2.0.0/bgesdk/api/samples.py +181 -0
  20. bge_python_sdk-2.0.0/bgesdk/api/stream.py +243 -0
  21. bge_python_sdk-2.0.0/bgesdk/api/variants.py +93 -0
  22. bge_python_sdk-2.0.0/bgesdk/client.py +248 -0
  23. bge_python_sdk-2.0.0/bgesdk/constants.py +46 -0
  24. bge_python_sdk-2.0.0/bgesdk/error.py +145 -0
  25. bge_python_sdk-2.0.0/bgesdk/fs.py +11 -0
  26. bge_python_sdk-2.0.0/bgesdk/http.py +193 -0
  27. bge_python_sdk-2.0.0/bgesdk/management/command.py +110 -0
  28. bge_python_sdk-2.0.0/bgesdk/management/commands/api/__init__.py +30 -0
  29. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/aggregate_omics_data.py +22 -34
  30. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/applet_url.py +10 -14
  31. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/download.py +17 -27
  32. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/ferry_to_oss.py +18 -34
  33. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_data_items.py +13 -28
  34. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_externals.py +9 -23
  35. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_func_abundance.py +22 -31
  36. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_gene_abundance.py +14 -28
  37. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_overview.py +13 -23
  38. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_range_stream.py +15 -40
  39. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_samples.py +19 -41
  40. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_taxon_abundance.py +12 -28
  41. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_user.py +7 -11
  42. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/get_variants.py +9 -19
  43. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/id_meta.py +10 -26
  44. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/task.py +8 -15
  45. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/upload.py +17 -27
  46. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/upload_dir.py +19 -30
  47. bge_python_sdk-2.0.0/bgesdk/management/commands/config.py +178 -0
  48. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/login.py +42 -39
  49. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/model.py +717 -692
  50. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/token.py +22 -21
  51. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/workon.py +6 -9
  52. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/constants.py +16 -25
  53. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/__init__.py +13 -0
  54. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/model_runtime.py +591 -0
  55. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/bge_model_server/__init__.py +10 -0
  56. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/bge_model_server/app/__init__.py +8 -0
  57. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/bge_model_server/app/__main__.py +54 -0
  58. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/bge_model_server/app/app_fastapi.py +168 -0
  59. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/bge_model_server/app/app_tornado.py +182 -0
  60. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/bge_model_server/app/logging_conf.py +80 -0
  61. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/bge_model_server/__init__.py +10 -0
  62. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/__init__.py +8 -0
  63. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/__main__.py +54 -0
  64. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/app_fastapi.py +168 -0
  65. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/app_tornado.py +182 -0
  66. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/logging_conf.py +80 -0
  67. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/model_license.py +20 -0
  68. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/build/lib/secure.py +99 -0
  69. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/model_license.py +20 -0
  70. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/secure.py +99 -0
  71. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/setup.py +29 -0
  72. bge_python_sdk-2.0.0/bgesdk/management/model_runtime/server/wheels/bge_model_server-0.1.0-py3-none-any.whl +0 -0
  73. bge_python_sdk-2.0.0/bgesdk/management/utils.py +280 -0
  74. bge_python_sdk-2.0.0/bgesdk/models.py +327 -0
  75. bge_python_sdk-2.0.0/bgesdk/py.typed +2 -0
  76. bge_python_sdk-2.0.0/bgesdk/utils.py +49 -0
  77. bge_python_sdk-2.0.0/bgesdk/version.py +1 -0
  78. bge_python_sdk-2.0.0/completions/_bge +14 -0
  79. bge_python_sdk-2.0.0/completions/bge.bash +14 -0
  80. bge_python_sdk-2.0.0/pyproject.toml +164 -0
  81. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/pytest.ini +2 -0
  82. bge_python_sdk-2.0.0/setup.cfg +4 -0
  83. bge_python_sdk-2.0.0/tests/__init__.py +3 -0
  84. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/conftest.py +61 -14
  85. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_abundance.py +58 -41
  86. bge_python_sdk-2.0.0/tests/test_api_offline.py +160 -0
  87. bge_python_sdk-2.0.0/tests/test_api_structure.py +115 -0
  88. bge_python_sdk-2.0.0/tests/test_error.py +178 -0
  89. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_fs.py +2 -2
  90. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_model.py +3 -1
  91. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_models.py +2 -4
  92. bge_python_sdk-2.0.0/tests/test_models_offline.py +47 -0
  93. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_oauth2.py +5 -6
  94. bge_python_sdk-2.0.0/tests/test_phenotype.py +85 -0
  95. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_samples.py +9 -10
  96. bge_python_sdk-2.0.0/tests/test_token.py +138 -0
  97. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_user.py +3 -1
  98. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/tests/test_variants.py +31 -21
  99. bge_python_sdk-2.0.0/tests/test_wgs.py +72 -0
  100. bge-python-sdk-0.7.0/MANIFEST.in +0 -2
  101. bge-python-sdk-0.7.0/PKG-INFO +0 -170
  102. bge-python-sdk-0.7.0/bge_python_sdk.egg-info/PKG-INFO +0 -170
  103. bge-python-sdk-0.7.0/bge_python_sdk.egg-info/requires.txt +0 -15
  104. bge-python-sdk-0.7.0/bge_python_sdk.egg-info/top_level.txt +0 -2
  105. bge-python-sdk-0.7.0/bgesdk/__init__.py +0 -5
  106. bge-python-sdk-0.7.0/bgesdk/__main__.py +0 -74
  107. bge-python-sdk-0.7.0/bgesdk/client.py +0 -1565
  108. bge-python-sdk-0.7.0/bgesdk/constants.py +0 -28
  109. bge-python-sdk-0.7.0/bgesdk/error.py +0 -22
  110. bge-python-sdk-0.7.0/bgesdk/fs.py +0 -6
  111. bge-python-sdk-0.7.0/bgesdk/http.py +0 -146
  112. bge-python-sdk-0.7.0/bgesdk/management/command.py +0 -27
  113. bge-python-sdk-0.7.0/bgesdk/management/commands/api/__init__.py +0 -58
  114. bge-python-sdk-0.7.0/bgesdk/management/commands/config.py +0 -204
  115. bge-python-sdk-0.7.0/bgesdk/management/commands/model_doc.py +0 -359
  116. bge-python-sdk-0.7.0/bgesdk/management/utils.py +0 -215
  117. bge-python-sdk-0.7.0/bgesdk/management/validate.py +0 -50
  118. bge-python-sdk-0.7.0/bgesdk/models.py +0 -184
  119. bge-python-sdk-0.7.0/bgesdk/utils.py +0 -32
  120. bge-python-sdk-0.7.0/bgesdk/version.py +0 -3
  121. bge-python-sdk-0.7.0/requirements.txt +0 -15
  122. bge-python-sdk-0.7.0/setup.cfg +0 -54
  123. bge-python-sdk-0.7.0/setup.py +0 -18
  124. bge-python-sdk-0.7.0/tests/__init__.py +0 -2
  125. bge-python-sdk-0.7.0/tests/test_phenotype.py +0 -60
  126. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bge_python_sdk.egg-info/dependency_links.txt +0 -0
  127. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/__init__.py +0 -0
  128. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/__init__.py +0 -0
  129. {bge-python-sdk-0.7.0 → bge_python_sdk-2.0.0}/bgesdk/management/commands/api/commands/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 teambge
3
+ Copyright (c) 2026 teambge
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
@@ -0,0 +1,10 @@
1
+ include README.md
2
+ include LICENSE
3
+ include pytest.ini
4
+ recursive-include completions *
5
+ include bgesdk/py.typed
6
+
7
+ # 排除编译产物
8
+ global-exclude *.pyc
9
+ global-exclude *.pyo
10
+ recursive-exclude * __pycache__
@@ -0,0 +1,180 @@
1
+ Metadata-Version: 2.1
2
+ Name: bge-python-sdk
3
+ Version: 2.0.0
4
+ Summary: 可用于调用 BGE 开放平台的相关接口。
5
+ Author-email: leafcoder <leafcoder@gmail.com>, xiangji1204 <xiangji1204@genomics.cn>
6
+ Maintainer-email: leafcoder <leafcoder@gmail.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/teambge/bge-python-sdk
9
+ Keywords: bge-python-sdk,bge,bgesdk,sdk
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Natural Language :: Chinese (Simplified)
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 10
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Topic :: Software Development :: Libraries
26
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
+ Classifier: Topic :: Utilities
28
+ Requires-Python: >=3.8
29
+ Description-Content-Type: text/markdown
30
+ License-File: LICENSE
31
+ Requires-Dist: requests>=2.25.0
32
+ Requires-Dist: oss2>=2.15.0
33
+ Requires-Dist: requests_toolbelt>=1.0.0
34
+ Requires-Dist: aliyun-python-sdk-core>=2.13.0
35
+ Requires-Dist: rich>=10.0.0
36
+ Requires-Dist: rich_argparse>=1.4.0
37
+ Requires-Dist: argcomplete>=2.0.0
38
+ Requires-Dist: python-minifier>=2.4.0
39
+ Requires-Dist: qprompt>=0.16.0
40
+ Requires-Dist: cython>=0.29.0
41
+ Provides-Extra: test
42
+ Requires-Dist: pytest>=7.0; extra == "test"
43
+ Requires-Dist: pytest-cov>=4.0; extra == "test"
44
+ Requires-Dist: requests-mock>=1.9.0; extra == "test"
45
+
46
+
47
+ <div align="center">
48
+
49
+ # BGE 开放平台 SDK - Python 版
50
+
51
+
52
+ <p>
53
+ <!-- Place this tag where you want the button to render. -->
54
+ <a class="github-button" href="https://github.com/teambge/bge-python-sdk/subscription" data-color-scheme="no-preference: light; light: light; dark: dark;" data-show-count="true" aria-label="Watch teambge/bge-python-sdk on GitHub">
55
+ <img alt="GitHub forks" src="https://img.shields.io/github/watchers/teambge/bge-python-sdk?style=social">
56
+ </a>
57
+ <a class="github-button" href="https://github.com/teambge/bge-python-sdk" data-color-scheme="no-preference: light; light: light; dark: dark;" data-show-count="true" aria-label="Star teambge/bge-python-sdk on GitHub">
58
+ <img alt="GitHub forks" src="https://img.shields.io/github/stars/teambge/bge-python-sdk?style=social">
59
+ </a>
60
+ <a class="github-button" href="https://github.com/teambge/bge-python-sdk/fork" data-color-scheme="no-preference: light; light: light; dark: dark;" data-show-count="true" aria-label="Fork teambge/bge-python-sdk on GitHub">
61
+ <img alt="GitHub forks" src="https://img.shields.io/github/forks/teambge/bge-python-sdk?style=social">
62
+ </a>
63
+ </p>
64
+
65
+ <p>
66
+ <img src="https://img.shields.io/github/v/release/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/v/release/teambge/bge-python-sdk" alt="GitHub release (latest by date)">
67
+ <img src="https://img.shields.io/github/languages/top/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/languages/top/teambge/bge-python-sdk" alt="GitHub top language">
68
+ <img src="https://img.shields.io/github/languages/code-size/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/languages/code-size/teambge/bge-python-sdk" alt="GitHub code size in bytes">
69
+ <img src="https://img.shields.io/github/commit-activity/w/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/commit-activity/w/teambge/bge-python-sdk" alt="GitHub commit activity">
70
+ <img src="https://static.pepy.tech/personalized-badge/bge-python-sdk?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" data-origin="https://static.pepy.tech/personalized-badge/bge-python-sdk?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" alt="PyPI - Downloads">
71
+ </p>
72
+
73
+ <pre>
74
+ ____ ____________ ______ __________ ______ _ __ _____ ____ __ __
75
+ / __ )/ ____/ ____/ / __ \ \/ /_ __/ / / / __ \/ | / / / ___// __ \/ //_/
76
+ / __ / / __/ __/ / /_/ /\ / / / / /_/ / / / / |/ / \__ \/ / / / ,<
77
+ / /_/ / /_/ / /___ / ____/ / / / / / __ / /_/ / /| / ___/ / /_/ / /| |
78
+ /_____/\____/_____/ /_/ /_/ /_/ /_/ /_/\____/_/ |_/ /____/_____/_/ |_|
79
+ </pre>
80
+
81
+ </div>
82
+
83
+ BGE 开放平台 是一个跨越多级数据的(多)组学数据平台,开发者在获得用户授权后,将可以通过开放平台提供的 API 访问关联用户的(多)组学数据,甚至写入数据。
84
+
85
+ 基于开放平台 API,开发者可避免重复开发采样、提取、测序和生信分析等繁复的流程,直接使用清洁的结构化数据。
86
+
87
+ 开发者可以通过开放平台提供的 API 创建极具创意性的(多)组学应用,如:
88
+
89
+ * 包含药物代谢或药物服用建议的应用
90
+ * 包含体检数据和营养代谢基因的餐饮应用
91
+ * 包含肠道菌群数据和痛风相关基因的痛风管理应用
92
+ * 基于祖源成分的社交网络应用,等等
93
+
94
+ BGE 开放平台 API 基于 OAuth 2.0 开发,并使用 SSL/TLS 加密传输,确保用户数据正确无误地授权,并安全地传输到第三方应用,确保用户数据不会被未经授权的应用获得。
95
+
96
+ # 安装
97
+
98
+ 推荐使用 pip 进行安装。
99
+
100
+ ```shell
101
+ $ pip install -U bge-python-sdk
102
+ ```
103
+
104
+ 或者
105
+
106
+ ```shell
107
+ $ make install
108
+ ```
109
+
110
+ 再或者
111
+
112
+ ```shell
113
+ $ pip install .
114
+ ```
115
+
116
+ # SDK 文档
117
+
118
+ 更加详细的 SDK 文档请查看 [SDK Documents](https://api.bge.genomics.cn/doc/#/sdk/README)。
119
+
120
+ # 快速开始
121
+
122
+ BGE 开放平台支持 OAuth2 的两种模式,分别是用户授权模式、客户端模式。
123
+
124
+ 详情请参考开放平台文档 [https://api.bge.genomics.cn/doc](https://api.bge.genomics.cn/doc) 。
125
+
126
+ ## ENDPOINTS
127
+
128
+ BGE 开放平台提供了如下可用的 `endpoint`。
129
+
130
+ | endpoint | 解释 |
131
+ | --------------------------- | ----------------------------------------------------------- |
132
+ | https://api.bge.genomics.cn | **线上环境** 主域名地址 |
133
+ | https://api.bge.omgut.com | **线上环境** 副域名地址,主域名地址不可用时可替换此域名地址 |
134
+
135
+ ## 授权码模式
136
+
137
+ ```python
138
+ from bgesdk import OAuth2, API
139
+
140
+ code = '???????' # 用户确认授权后平台返回的授权码
141
+ client_id = 'demo'
142
+ client_secret = 'demo'
143
+ redirect_uri = 'http://test.cn'
144
+ oauth2 = OAuth2(
145
+ client_id, client_secret,
146
+ endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
147
+ verbose=False)
148
+ token = oauth2.exchange_authorization_code(code, redirect_uri)
149
+
150
+ api = oauth2.get_api(token.access_token)
151
+ print(api.get_user())
152
+
153
+ api = API(token.access_token)
154
+ print(api.get_user())
155
+ ```
156
+
157
+ ## 客户端模式
158
+
159
+ ```python
160
+ from bgesdk import OAuth2, API
161
+
162
+ client_id = 'demo'
163
+ client_secret = 'demo'
164
+ oauth2 = OAuth2(
165
+ client_id, client_secret,
166
+ endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
167
+ verbose=False)
168
+ token = oauth2.get_credentials_token()
169
+
170
+ api = oauth2.get_api(token.access_token)
171
+ print(api.get_variants('E-B1243433', 'rs333'))
172
+
173
+ api = API(token.access_token)
174
+ print(api.get_variants('E-B1243433', 'rs333'))
175
+ ```
176
+
177
+ # Contributors
178
+
179
+ * xiangji1204's [github](https://github.com/xiangji1204)
180
+ * leafcoder(leafcoder@gmail.com)'s [github](https://github.com/leafcoder)
@@ -65,7 +65,7 @@ $ make install
65
65
  再或者
66
66
 
67
67
  ```shell
68
- $ python setup.py install
68
+ $ pip install .
69
69
  ```
70
70
 
71
71
  # SDK 文档
@@ -0,0 +1,180 @@
1
+ Metadata-Version: 2.1
2
+ Name: bge-python-sdk
3
+ Version: 2.0.0
4
+ Summary: 可用于调用 BGE 开放平台的相关接口。
5
+ Author-email: leafcoder <leafcoder@gmail.com>, xiangji1204 <xiangji1204@genomics.cn>
6
+ Maintainer-email: leafcoder <leafcoder@gmail.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/teambge/bge-python-sdk
9
+ Keywords: bge-python-sdk,bge,bgesdk,sdk
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Natural Language :: Chinese (Simplified)
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 10
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Topic :: Software Development :: Libraries
26
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
+ Classifier: Topic :: Utilities
28
+ Requires-Python: >=3.8
29
+ Description-Content-Type: text/markdown
30
+ License-File: LICENSE
31
+ Requires-Dist: requests>=2.25.0
32
+ Requires-Dist: oss2>=2.15.0
33
+ Requires-Dist: requests_toolbelt>=1.0.0
34
+ Requires-Dist: aliyun-python-sdk-core>=2.13.0
35
+ Requires-Dist: rich>=10.0.0
36
+ Requires-Dist: rich_argparse>=1.4.0
37
+ Requires-Dist: argcomplete>=2.0.0
38
+ Requires-Dist: python-minifier>=2.4.0
39
+ Requires-Dist: qprompt>=0.16.0
40
+ Requires-Dist: cython>=0.29.0
41
+ Provides-Extra: test
42
+ Requires-Dist: pytest>=7.0; extra == "test"
43
+ Requires-Dist: pytest-cov>=4.0; extra == "test"
44
+ Requires-Dist: requests-mock>=1.9.0; extra == "test"
45
+
46
+
47
+ <div align="center">
48
+
49
+ # BGE 开放平台 SDK - Python 版
50
+
51
+
52
+ <p>
53
+ <!-- Place this tag where you want the button to render. -->
54
+ <a class="github-button" href="https://github.com/teambge/bge-python-sdk/subscription" data-color-scheme="no-preference: light; light: light; dark: dark;" data-show-count="true" aria-label="Watch teambge/bge-python-sdk on GitHub">
55
+ <img alt="GitHub forks" src="https://img.shields.io/github/watchers/teambge/bge-python-sdk?style=social">
56
+ </a>
57
+ <a class="github-button" href="https://github.com/teambge/bge-python-sdk" data-color-scheme="no-preference: light; light: light; dark: dark;" data-show-count="true" aria-label="Star teambge/bge-python-sdk on GitHub">
58
+ <img alt="GitHub forks" src="https://img.shields.io/github/stars/teambge/bge-python-sdk?style=social">
59
+ </a>
60
+ <a class="github-button" href="https://github.com/teambge/bge-python-sdk/fork" data-color-scheme="no-preference: light; light: light; dark: dark;" data-show-count="true" aria-label="Fork teambge/bge-python-sdk on GitHub">
61
+ <img alt="GitHub forks" src="https://img.shields.io/github/forks/teambge/bge-python-sdk?style=social">
62
+ </a>
63
+ </p>
64
+
65
+ <p>
66
+ <img src="https://img.shields.io/github/v/release/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/v/release/teambge/bge-python-sdk" alt="GitHub release (latest by date)">
67
+ <img src="https://img.shields.io/github/languages/top/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/languages/top/teambge/bge-python-sdk" alt="GitHub top language">
68
+ <img src="https://img.shields.io/github/languages/code-size/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/languages/code-size/teambge/bge-python-sdk" alt="GitHub code size in bytes">
69
+ <img src="https://img.shields.io/github/commit-activity/w/teambge/bge-python-sdk" data-origin="https://img.shields.io/github/commit-activity/w/teambge/bge-python-sdk" alt="GitHub commit activity">
70
+ <img src="https://static.pepy.tech/personalized-badge/bge-python-sdk?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" data-origin="https://static.pepy.tech/personalized-badge/bge-python-sdk?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" alt="PyPI - Downloads">
71
+ </p>
72
+
73
+ <pre>
74
+ ____ ____________ ______ __________ ______ _ __ _____ ____ __ __
75
+ / __ )/ ____/ ____/ / __ \ \/ /_ __/ / / / __ \/ | / / / ___// __ \/ //_/
76
+ / __ / / __/ __/ / /_/ /\ / / / / /_/ / / / / |/ / \__ \/ / / / ,<
77
+ / /_/ / /_/ / /___ / ____/ / / / / / __ / /_/ / /| / ___/ / /_/ / /| |
78
+ /_____/\____/_____/ /_/ /_/ /_/ /_/ /_/\____/_/ |_/ /____/_____/_/ |_|
79
+ </pre>
80
+
81
+ </div>
82
+
83
+ BGE 开放平台 是一个跨越多级数据的(多)组学数据平台,开发者在获得用户授权后,将可以通过开放平台提供的 API 访问关联用户的(多)组学数据,甚至写入数据。
84
+
85
+ 基于开放平台 API,开发者可避免重复开发采样、提取、测序和生信分析等繁复的流程,直接使用清洁的结构化数据。
86
+
87
+ 开发者可以通过开放平台提供的 API 创建极具创意性的(多)组学应用,如:
88
+
89
+ * 包含药物代谢或药物服用建议的应用
90
+ * 包含体检数据和营养代谢基因的餐饮应用
91
+ * 包含肠道菌群数据和痛风相关基因的痛风管理应用
92
+ * 基于祖源成分的社交网络应用,等等
93
+
94
+ BGE 开放平台 API 基于 OAuth 2.0 开发,并使用 SSL/TLS 加密传输,确保用户数据正确无误地授权,并安全地传输到第三方应用,确保用户数据不会被未经授权的应用获得。
95
+
96
+ # 安装
97
+
98
+ 推荐使用 pip 进行安装。
99
+
100
+ ```shell
101
+ $ pip install -U bge-python-sdk
102
+ ```
103
+
104
+ 或者
105
+
106
+ ```shell
107
+ $ make install
108
+ ```
109
+
110
+ 再或者
111
+
112
+ ```shell
113
+ $ pip install .
114
+ ```
115
+
116
+ # SDK 文档
117
+
118
+ 更加详细的 SDK 文档请查看 [SDK Documents](https://api.bge.genomics.cn/doc/#/sdk/README)。
119
+
120
+ # 快速开始
121
+
122
+ BGE 开放平台支持 OAuth2 的两种模式,分别是用户授权模式、客户端模式。
123
+
124
+ 详情请参考开放平台文档 [https://api.bge.genomics.cn/doc](https://api.bge.genomics.cn/doc) 。
125
+
126
+ ## ENDPOINTS
127
+
128
+ BGE 开放平台提供了如下可用的 `endpoint`。
129
+
130
+ | endpoint | 解释 |
131
+ | --------------------------- | ----------------------------------------------------------- |
132
+ | https://api.bge.genomics.cn | **线上环境** 主域名地址 |
133
+ | https://api.bge.omgut.com | **线上环境** 副域名地址,主域名地址不可用时可替换此域名地址 |
134
+
135
+ ## 授权码模式
136
+
137
+ ```python
138
+ from bgesdk import OAuth2, API
139
+
140
+ code = '???????' # 用户确认授权后平台返回的授权码
141
+ client_id = 'demo'
142
+ client_secret = 'demo'
143
+ redirect_uri = 'http://test.cn'
144
+ oauth2 = OAuth2(
145
+ client_id, client_secret,
146
+ endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
147
+ verbose=False)
148
+ token = oauth2.exchange_authorization_code(code, redirect_uri)
149
+
150
+ api = oauth2.get_api(token.access_token)
151
+ print(api.get_user())
152
+
153
+ api = API(token.access_token)
154
+ print(api.get_user())
155
+ ```
156
+
157
+ ## 客户端模式
158
+
159
+ ```python
160
+ from bgesdk import OAuth2, API
161
+
162
+ client_id = 'demo'
163
+ client_secret = 'demo'
164
+ oauth2 = OAuth2(
165
+ client_id, client_secret,
166
+ endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
167
+ verbose=False)
168
+ token = oauth2.get_credentials_token()
169
+
170
+ api = oauth2.get_api(token.access_token)
171
+ print(api.get_variants('E-B1243433', 'rs333'))
172
+
173
+ api = API(token.access_token)
174
+ print(api.get_variants('E-B1243433', 'rs333'))
175
+ ```
176
+
177
+ # Contributors
178
+
179
+ * xiangji1204's [github](https://github.com/xiangji1204)
180
+ * leafcoder(leafcoder@gmail.com)'s [github](https://github.com/leafcoder)
@@ -1,10 +1,8 @@
1
1
  LICENSE
2
2
  MANIFEST.in
3
3
  README.md
4
+ pyproject.toml
4
5
  pytest.ini
5
- requirements.txt
6
- setup.cfg
7
- setup.py
8
6
  bge_python_sdk.egg-info/PKG-INFO
9
7
  bge_python_sdk.egg-info/SOURCES.txt
10
8
  bge_python_sdk.egg-info/dependency_links.txt
@@ -19,18 +17,27 @@ bgesdk/error.py
19
17
  bgesdk/fs.py
20
18
  bgesdk/http.py
21
19
  bgesdk/models.py
20
+ bgesdk/py.typed
22
21
  bgesdk/utils.py
23
22
  bgesdk/version.py
23
+ bgesdk/api/__init__.py
24
+ bgesdk/api/api.py
25
+ bgesdk/api/base.py
26
+ bgesdk/api/file.py
27
+ bgesdk/api/microbiome.py
28
+ bgesdk/api/misc.py
29
+ bgesdk/api/model.py
30
+ bgesdk/api/samples.py
31
+ bgesdk/api/stream.py
32
+ bgesdk/api/variants.py
24
33
  bgesdk/management/__init__.py
25
34
  bgesdk/management/command.py
26
35
  bgesdk/management/constants.py
27
36
  bgesdk/management/utils.py
28
- bgesdk/management/validate.py
29
37
  bgesdk/management/commands/__init__.py
30
38
  bgesdk/management/commands/config.py
31
39
  bgesdk/management/commands/login.py
32
40
  bgesdk/management/commands/model.py
33
- bgesdk/management/commands/model_doc.py
34
41
  bgesdk/management/commands/token.py
35
42
  bgesdk/management/commands/workon.py
36
43
  bgesdk/management/commands/api/__init__.py
@@ -53,14 +60,42 @@ bgesdk/management/commands/api/commands/id_meta.py
53
60
  bgesdk/management/commands/api/commands/task.py
54
61
  bgesdk/management/commands/api/commands/upload.py
55
62
  bgesdk/management/commands/api/commands/upload_dir.py
63
+ bgesdk/management/model_runtime/__init__.py
64
+ bgesdk/management/model_runtime/model_runtime.py
65
+ bgesdk/management/model_runtime/server/model_license.py
66
+ bgesdk/management/model_runtime/server/secure.py
67
+ bgesdk/management/model_runtime/server/setup.py
68
+ bgesdk/management/model_runtime/server/bge_model_server/__init__.py
69
+ bgesdk/management/model_runtime/server/bge_model_server/app/__init__.py
70
+ bgesdk/management/model_runtime/server/bge_model_server/app/__main__.py
71
+ bgesdk/management/model_runtime/server/bge_model_server/app/app_fastapi.py
72
+ bgesdk/management/model_runtime/server/bge_model_server/app/app_tornado.py
73
+ bgesdk/management/model_runtime/server/bge_model_server/app/logging_conf.py
74
+ bgesdk/management/model_runtime/server/build/lib/model_license.py
75
+ bgesdk/management/model_runtime/server/build/lib/secure.py
76
+ bgesdk/management/model_runtime/server/build/lib/bge_model_server/__init__.py
77
+ bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/__init__.py
78
+ bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/__main__.py
79
+ bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/app_fastapi.py
80
+ bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/app_tornado.py
81
+ bgesdk/management/model_runtime/server/build/lib/bge_model_server/app/logging_conf.py
82
+ bgesdk/management/model_runtime/server/wheels/bge_model_server-0.1.0-py3-none-any.whl
83
+ completions/_bge
84
+ completions/bge.bash
56
85
  tests/__init__.py
57
86
  tests/conftest.py
58
87
  tests/test_abundance.py
88
+ tests/test_api_offline.py
89
+ tests/test_api_structure.py
90
+ tests/test_error.py
59
91
  tests/test_fs.py
60
92
  tests/test_model.py
61
93
  tests/test_models.py
94
+ tests/test_models_offline.py
62
95
  tests/test_oauth2.py
63
96
  tests/test_phenotype.py
64
97
  tests/test_samples.py
98
+ tests/test_token.py
65
99
  tests/test_user.py
66
- tests/test_variants.py
100
+ tests/test_variants.py
101
+ tests/test_wgs.py
@@ -1,3 +1,2 @@
1
1
  [console_scripts]
2
2
  bge = bgesdk.__main__:main
3
-
@@ -0,0 +1,15 @@
1
+ requests>=2.25.0
2
+ oss2>=2.15.0
3
+ requests_toolbelt>=1.0.0
4
+ aliyun-python-sdk-core>=2.13.0
5
+ rich>=10.0.0
6
+ rich_argparse>=1.4.0
7
+ argcomplete>=2.0.0
8
+ python-minifier>=2.4.0
9
+ qprompt>=0.16.0
10
+ cython>=0.29.0
11
+
12
+ [test]
13
+ pytest>=7.0
14
+ pytest-cov>=4.0
15
+ requests-mock>=1.9.0
@@ -0,0 +1,6 @@
1
+ bgesdk
2
+ completions
3
+ dist
4
+ docs
5
+ htmlcov
6
+ tests
@@ -0,0 +1,5 @@
1
+ from .client import API, OAuth2, endpoints
2
+ from .fs import FileItem
3
+ from .version import __version__
4
+
5
+ __all__ = ['API', 'OAuth2', 'endpoints', 'FileItem', '__version__']
@@ -0,0 +1,66 @@
1
+ from . import version
2
+ from .management import commands as commands_package
3
+ from .management.command import CommandError, GroupedRichHelpFormatter
4
+ from .management.utils import discover_commands, output
5
+
6
+ from typing import Any
7
+
8
+ import argparse
9
+ import sys
10
+
11
+ argcomplete: Any = None # 提供 shell 自动补全(可选依赖),未安装时为 None
12
+ try:
13
+ import argcomplete # type: ignore[no-redef]
14
+ except ImportError:
15
+ pass
16
+
17
+ try:
18
+ import readline # noqa: F401 # 启用交互式历史/补全等副作用
19
+ except ImportError:
20
+ pass
21
+
22
+
23
+ def init_parser():
24
+ parser = argparse.ArgumentParser(
25
+ description=(
26
+ 'BGE 开放平台 SDK 命令行工具提供了初始化模型脚手架、部署模型、'
27
+ '初始化模型文档配置文件、上传图片、部署模型文档等命令。'
28
+ ),
29
+ formatter_class=GroupedRichHelpFormatter,
30
+ )
31
+ parser.add_argument(
32
+ '-V',
33
+ '--version',
34
+ action='version',
35
+ help='显示当前 BGE 开放平台 Python SDK 版本号。',
36
+ version=f'version {version.__version__}',
37
+ )
38
+ subparsers = parser.add_subparsers(
39
+ dest='command', help='SDK 命令行工具可选子命令。', required=False
40
+ )
41
+ discover_commands(commands_package, subparsers)
42
+ return parser
43
+
44
+
45
+ def main():
46
+ parser = init_parser()
47
+ if argcomplete is not None:
48
+ argcomplete.autocomplete(parser)
49
+ if len(sys.argv) < 2:
50
+ parser.print_help(sys.stderr)
51
+ sys.exit(1)
52
+ input_args = sys.argv[1:]
53
+ args = parser.parse_args(input_args)
54
+ try:
55
+ args.method(args)
56
+ except KeyboardInterrupt:
57
+ sys.exit(1)
58
+ except CommandError as exc:
59
+ sys.exit(exc.code)
60
+ except Exception as exc: # noqa: BLE001 统一兜底,避免原始堆栈泄露
61
+ output(f'[red]命令执行出错:{exc}[/red]')
62
+ sys.exit(2)
63
+
64
+
65
+ if __name__ == '__main__':
66
+ main()
@@ -0,0 +1,5 @@
1
+ """按域拆分的 API 子模块包。"""
2
+
3
+ from .api import API
4
+
5
+ __all__ = ['API']
@@ -0,0 +1,29 @@
1
+ """API 客户端聚合层。
2
+
3
+ 按域将能力拆分为多个 Mixin(Samples / Variants / Microbiome / File / Model /
4
+ Stream / Misc),由本模块聚合为 ``API`` 类。对外公开接口与历史 ``client.API``
5
+ 保持一致,调用方无需变更(``api.get_samples(...)`` 等照常可用)。
6
+ """
7
+
8
+ from .file import FileMixin
9
+ from .microbiome import MicrobiomeMixin
10
+ from .misc import MiscMixin
11
+ from .model import ModelMixin
12
+ from .samples import SamplesMixin
13
+ from .stream import StreamMixin
14
+ from .variants import VariantsMixin
15
+
16
+
17
+ class API(
18
+ SamplesMixin,
19
+ VariantsMixin,
20
+ MicrobiomeMixin,
21
+ FileMixin,
22
+ ModelMixin,
23
+ StreamMixin,
24
+ MiscMixin,
25
+ ):
26
+ """BGE 开放平台接口调用客户端。
27
+
28
+ 基础设施与账户域由 ``APIBase`` 经各 Mixin 间接继承提供,其余按业务域分散于各 Mixin。
29
+ """