bge-python-sdk 0.6.0__tar.gz → 0.6.2__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.
- bge-python-sdk-0.6.2/PKG-INFO +182 -0
- bge-python-sdk-0.6.2/bge_python_sdk.egg-info/PKG-INFO +182 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bge_python_sdk.egg-info/entry_points.txt +0 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/client.py +51 -20
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/aggregate_omics_data.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/download.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_data_items.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_externals.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_range_stream.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_samples.py +2 -2
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_user.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_variants.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/task.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/upload.py +16 -2
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/upload_dir.py +16 -2
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/version.py +1 -1
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/setup.cfg +1 -1
- bge-python-sdk-0.6.0/PKG-INFO +0 -167
- bge-python-sdk-0.6.0/bge_python_sdk.egg-info/PKG-INFO +0 -167
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/LICENSE +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/MANIFEST.in +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/README.md +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bge_python_sdk.egg-info/SOURCES.txt +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bge_python_sdk.egg-info/dependency_links.txt +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bge_python_sdk.egg-info/requires.txt +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bge_python_sdk.egg-info/top_level.txt +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/__init__.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/__main__.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/constants.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/error.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/fs.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/http.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/__init__.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/command.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/__init__.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/__init__.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/__init__.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_func_abundance.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_gene_abundance.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_taxon_abundance.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/config.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/login.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/model.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/model_doc.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/token.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/workon.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/constants.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/utils.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/validate.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/models.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/utils.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/pytest.ini +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/requirements.txt +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/setup.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/__init__.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/conftest.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_abundance.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_fs.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_model.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_models.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_oauth2.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_phenotype.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_samples.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_user.py +0 -0
- {bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/tests/test_variants.py +0 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: bge-python-sdk
|
|
3
|
+
Version: 0.6.2
|
|
4
|
+
Summary: 可用于调用 BGE 开放平台的相关接口。
|
|
5
|
+
Home-page: https://github.com/teambge/bge-python-sdk
|
|
6
|
+
Author: leafcoder,xiangji1204
|
|
7
|
+
Author-email: leafcoder@gmail.com,xiangji1204@genomics.cn
|
|
8
|
+
Maintainer: leafcoder
|
|
9
|
+
Maintainer-email: leafcoder@gmail.com
|
|
10
|
+
License: MIT
|
|
11
|
+
Keywords: bge-python-sdk bge bgesdk sdk
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Natural Language :: Chinese (Simplified)
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
|
|
18
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
+
Classifier: Programming Language :: Python
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
|
+
Classifier: Topic :: Utilities
|
|
29
|
+
Requires-Python: >=3.6.3
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
License-File: LICENSE
|
|
32
|
+
Requires-Dist: aliyun-python-sdk-core
|
|
33
|
+
Requires-Dist: six
|
|
34
|
+
Requires-Dist: certifi
|
|
35
|
+
Requires-Dist: chardet
|
|
36
|
+
Requires-Dist: idna
|
|
37
|
+
Requires-Dist: requests
|
|
38
|
+
Requires-Dist: urllib3
|
|
39
|
+
Requires-Dist: oss2
|
|
40
|
+
Requires-Dist: docker
|
|
41
|
+
Requires-Dist: pimento
|
|
42
|
+
Requires-Dist: qprompt
|
|
43
|
+
Requires-Dist: requests_toolbelt
|
|
44
|
+
Requires-Dist: validator.py
|
|
45
|
+
Requires-Dist: python-minifier
|
|
46
|
+
Requires-Dist: rich
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div align="center">
|
|
50
|
+
|
|
51
|
+
# BGE 开放平台 SDK - Python 版
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
<p>
|
|
55
|
+
<!-- Place this tag where you want the button to render. -->
|
|
56
|
+
<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">
|
|
57
|
+
<img alt="GitHub forks" src="https://img.shields.io/github/watchers/teambge/bge-python-sdk?style=social">
|
|
58
|
+
</a>
|
|
59
|
+
<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">
|
|
60
|
+
<img alt="GitHub forks" src="https://img.shields.io/github/stars/teambge/bge-python-sdk?style=social">
|
|
61
|
+
</a>
|
|
62
|
+
<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">
|
|
63
|
+
<img alt="GitHub forks" src="https://img.shields.io/github/forks/teambge/bge-python-sdk?style=social">
|
|
64
|
+
</a>
|
|
65
|
+
</p>
|
|
66
|
+
|
|
67
|
+
<p>
|
|
68
|
+
<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)">
|
|
69
|
+
<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">
|
|
70
|
+
<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">
|
|
71
|
+
<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">
|
|
72
|
+
<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">
|
|
73
|
+
</p>
|
|
74
|
+
|
|
75
|
+
<pre>
|
|
76
|
+
____ ____________ ______ __________ ______ _ __ _____ ____ __ __
|
|
77
|
+
/ __ )/ ____/ ____/ / __ \ \/ /_ __/ / / / __ \/ | / / / ___// __ \/ //_/
|
|
78
|
+
/ __ / / __/ __/ / /_/ /\ / / / / /_/ / / / / |/ / \__ \/ / / / ,<
|
|
79
|
+
/ /_/ / /_/ / /___ / ____/ / / / / / __ / /_/ / /| / ___/ / /_/ / /| |
|
|
80
|
+
/_____/\____/_____/ /_/ /_/ /_/ /_/ /_/\____/_/ |_/ /____/_____/_/ |_|
|
|
81
|
+
</pre>
|
|
82
|
+
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
BGE 开放平台 是一个跨越多级数据的(多)组学数据平台,开发者在获得用户授权后,将可以通过开放平台提供的 API 访问关联用户的(多)组学数据,甚至写入数据。
|
|
86
|
+
|
|
87
|
+
基于开放平台 API,开发者可避免重复开发采样、提取、测序和生信分析等繁复的流程,直接使用清洁的结构化数据。
|
|
88
|
+
|
|
89
|
+
开发者可以通过开放平台提供的 API 创建极具创意性的(多)组学应用,如:
|
|
90
|
+
|
|
91
|
+
* 包含药物代谢或药物服用建议的应用
|
|
92
|
+
* 包含体检数据和营养代谢基因的餐饮应用
|
|
93
|
+
* 包含肠道菌群数据和痛风相关基因的痛风管理应用
|
|
94
|
+
* 基于祖源成分的社交网络应用,等等
|
|
95
|
+
|
|
96
|
+
BGE 开放平台 API 基于 OAuth 2.0 开发,并使用 SSL/TLS 加密传输,确保用户数据正确无误地授权,并安全地传输到第三方应用,确保用户数据不会被未经授权的应用获得。
|
|
97
|
+
|
|
98
|
+
# 安装
|
|
99
|
+
|
|
100
|
+
推荐使用 pip 进行安装。
|
|
101
|
+
|
|
102
|
+
```shell
|
|
103
|
+
$ pip install -U bge-python-sdk
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
或者
|
|
107
|
+
|
|
108
|
+
```shell
|
|
109
|
+
$ make install
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
再或者
|
|
113
|
+
|
|
114
|
+
```shell
|
|
115
|
+
$ python setup.py install
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
# SDK 文档
|
|
119
|
+
|
|
120
|
+
更加详细的 SDK 文档请查看 [SDK Documents](https://api.bge.genomics.cn/doc/#/sdk/README)。
|
|
121
|
+
|
|
122
|
+
# 快速开始
|
|
123
|
+
|
|
124
|
+
BGE 开放平台支持 OAuth2 的两种模式,分别是用户授权模式、客户端模式。
|
|
125
|
+
|
|
126
|
+
详情请参考开放平台文档 [https://api.bge.genomics.cn/doc](https://api.bge.genomics.cn/doc) 。
|
|
127
|
+
|
|
128
|
+
## ENDPOINTS
|
|
129
|
+
|
|
130
|
+
BGE 开放平台提供了如下可用的 `endpoint`。
|
|
131
|
+
|
|
132
|
+
| endpoint | 解释 |
|
|
133
|
+
| --------------------------- | ----------------------------------------------------------- |
|
|
134
|
+
| https://api.bge.genomics.cn | **线上环境** 主域名地址 |
|
|
135
|
+
| https://api.bge.omgut.com | **线上环境** 副域名地址,主域名地址不可用时可替换此域名地址 |
|
|
136
|
+
|
|
137
|
+
## 授权码模式
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
from bgesdk import OAuth2, API
|
|
141
|
+
|
|
142
|
+
code = '???????' # 用户确认授权后平台返回的授权码
|
|
143
|
+
client_id = 'demo'
|
|
144
|
+
client_secret = 'demo'
|
|
145
|
+
redirect_uri = 'http://test.cn'
|
|
146
|
+
oauth2 = OAuth2(
|
|
147
|
+
client_id, client_secret,
|
|
148
|
+
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
149
|
+
verbose=False)
|
|
150
|
+
token = oauth2.exchange_authorization_code(code, redirect_uri)
|
|
151
|
+
|
|
152
|
+
api = oauth2.get_api(token.access_token)
|
|
153
|
+
print(api.get_user())
|
|
154
|
+
|
|
155
|
+
api = API(token.access_token)
|
|
156
|
+
print(api.get_user())
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 客户端模式
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
from bgesdk import OAuth2, API
|
|
163
|
+
|
|
164
|
+
client_id = 'demo'
|
|
165
|
+
client_secret = 'demo'
|
|
166
|
+
oauth2 = OAuth2(
|
|
167
|
+
client_id, client_secret,
|
|
168
|
+
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
169
|
+
verbose=False)
|
|
170
|
+
token = oauth2.get_credentials_token()
|
|
171
|
+
|
|
172
|
+
api = oauth2.get_api(token.access_token)
|
|
173
|
+
print(api.get_variants('E-B1243433', 'rs333'))
|
|
174
|
+
|
|
175
|
+
api = API(token.access_token)
|
|
176
|
+
print(api.get_variants('E-B1243433', 'rs333'))
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
# Contributors
|
|
180
|
+
|
|
181
|
+
* xiangji1204's [github](https://github.com/xiangji1204)
|
|
182
|
+
* leafcoder(leafcoder@gmail.com)'s [github](https://github.com/leafcoder)
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: bge-python-sdk
|
|
3
|
+
Version: 0.6.2
|
|
4
|
+
Summary: 可用于调用 BGE 开放平台的相关接口。
|
|
5
|
+
Home-page: https://github.com/teambge/bge-python-sdk
|
|
6
|
+
Author: leafcoder,xiangji1204
|
|
7
|
+
Author-email: leafcoder@gmail.com,xiangji1204@genomics.cn
|
|
8
|
+
Maintainer: leafcoder
|
|
9
|
+
Maintainer-email: leafcoder@gmail.com
|
|
10
|
+
License: MIT
|
|
11
|
+
Keywords: bge-python-sdk bge bgesdk sdk
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Natural Language :: Chinese (Simplified)
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
|
|
18
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
+
Classifier: Programming Language :: Python
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
|
+
Classifier: Topic :: Utilities
|
|
29
|
+
Requires-Python: >=3.6.3
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
License-File: LICENSE
|
|
32
|
+
Requires-Dist: aliyun-python-sdk-core
|
|
33
|
+
Requires-Dist: six
|
|
34
|
+
Requires-Dist: certifi
|
|
35
|
+
Requires-Dist: chardet
|
|
36
|
+
Requires-Dist: idna
|
|
37
|
+
Requires-Dist: requests
|
|
38
|
+
Requires-Dist: urllib3
|
|
39
|
+
Requires-Dist: oss2
|
|
40
|
+
Requires-Dist: docker
|
|
41
|
+
Requires-Dist: pimento
|
|
42
|
+
Requires-Dist: qprompt
|
|
43
|
+
Requires-Dist: requests_toolbelt
|
|
44
|
+
Requires-Dist: validator.py
|
|
45
|
+
Requires-Dist: python-minifier
|
|
46
|
+
Requires-Dist: rich
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div align="center">
|
|
50
|
+
|
|
51
|
+
# BGE 开放平台 SDK - Python 版
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
<p>
|
|
55
|
+
<!-- Place this tag where you want the button to render. -->
|
|
56
|
+
<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">
|
|
57
|
+
<img alt="GitHub forks" src="https://img.shields.io/github/watchers/teambge/bge-python-sdk?style=social">
|
|
58
|
+
</a>
|
|
59
|
+
<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">
|
|
60
|
+
<img alt="GitHub forks" src="https://img.shields.io/github/stars/teambge/bge-python-sdk?style=social">
|
|
61
|
+
</a>
|
|
62
|
+
<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">
|
|
63
|
+
<img alt="GitHub forks" src="https://img.shields.io/github/forks/teambge/bge-python-sdk?style=social">
|
|
64
|
+
</a>
|
|
65
|
+
</p>
|
|
66
|
+
|
|
67
|
+
<p>
|
|
68
|
+
<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)">
|
|
69
|
+
<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">
|
|
70
|
+
<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">
|
|
71
|
+
<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">
|
|
72
|
+
<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">
|
|
73
|
+
</p>
|
|
74
|
+
|
|
75
|
+
<pre>
|
|
76
|
+
____ ____________ ______ __________ ______ _ __ _____ ____ __ __
|
|
77
|
+
/ __ )/ ____/ ____/ / __ \ \/ /_ __/ / / / __ \/ | / / / ___// __ \/ //_/
|
|
78
|
+
/ __ / / __/ __/ / /_/ /\ / / / / /_/ / / / / |/ / \__ \/ / / / ,<
|
|
79
|
+
/ /_/ / /_/ / /___ / ____/ / / / / / __ / /_/ / /| / ___/ / /_/ / /| |
|
|
80
|
+
/_____/\____/_____/ /_/ /_/ /_/ /_/ /_/\____/_/ |_/ /____/_____/_/ |_|
|
|
81
|
+
</pre>
|
|
82
|
+
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
BGE 开放平台 是一个跨越多级数据的(多)组学数据平台,开发者在获得用户授权后,将可以通过开放平台提供的 API 访问关联用户的(多)组学数据,甚至写入数据。
|
|
86
|
+
|
|
87
|
+
基于开放平台 API,开发者可避免重复开发采样、提取、测序和生信分析等繁复的流程,直接使用清洁的结构化数据。
|
|
88
|
+
|
|
89
|
+
开发者可以通过开放平台提供的 API 创建极具创意性的(多)组学应用,如:
|
|
90
|
+
|
|
91
|
+
* 包含药物代谢或药物服用建议的应用
|
|
92
|
+
* 包含体检数据和营养代谢基因的餐饮应用
|
|
93
|
+
* 包含肠道菌群数据和痛风相关基因的痛风管理应用
|
|
94
|
+
* 基于祖源成分的社交网络应用,等等
|
|
95
|
+
|
|
96
|
+
BGE 开放平台 API 基于 OAuth 2.0 开发,并使用 SSL/TLS 加密传输,确保用户数据正确无误地授权,并安全地传输到第三方应用,确保用户数据不会被未经授权的应用获得。
|
|
97
|
+
|
|
98
|
+
# 安装
|
|
99
|
+
|
|
100
|
+
推荐使用 pip 进行安装。
|
|
101
|
+
|
|
102
|
+
```shell
|
|
103
|
+
$ pip install -U bge-python-sdk
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
或者
|
|
107
|
+
|
|
108
|
+
```shell
|
|
109
|
+
$ make install
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
再或者
|
|
113
|
+
|
|
114
|
+
```shell
|
|
115
|
+
$ python setup.py install
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
# SDK 文档
|
|
119
|
+
|
|
120
|
+
更加详细的 SDK 文档请查看 [SDK Documents](https://api.bge.genomics.cn/doc/#/sdk/README)。
|
|
121
|
+
|
|
122
|
+
# 快速开始
|
|
123
|
+
|
|
124
|
+
BGE 开放平台支持 OAuth2 的两种模式,分别是用户授权模式、客户端模式。
|
|
125
|
+
|
|
126
|
+
详情请参考开放平台文档 [https://api.bge.genomics.cn/doc](https://api.bge.genomics.cn/doc) 。
|
|
127
|
+
|
|
128
|
+
## ENDPOINTS
|
|
129
|
+
|
|
130
|
+
BGE 开放平台提供了如下可用的 `endpoint`。
|
|
131
|
+
|
|
132
|
+
| endpoint | 解释 |
|
|
133
|
+
| --------------------------- | ----------------------------------------------------------- |
|
|
134
|
+
| https://api.bge.genomics.cn | **线上环境** 主域名地址 |
|
|
135
|
+
| https://api.bge.omgut.com | **线上环境** 副域名地址,主域名地址不可用时可替换此域名地址 |
|
|
136
|
+
|
|
137
|
+
## 授权码模式
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
from bgesdk import OAuth2, API
|
|
141
|
+
|
|
142
|
+
code = '???????' # 用户确认授权后平台返回的授权码
|
|
143
|
+
client_id = 'demo'
|
|
144
|
+
client_secret = 'demo'
|
|
145
|
+
redirect_uri = 'http://test.cn'
|
|
146
|
+
oauth2 = OAuth2(
|
|
147
|
+
client_id, client_secret,
|
|
148
|
+
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
149
|
+
verbose=False)
|
|
150
|
+
token = oauth2.exchange_authorization_code(code, redirect_uri)
|
|
151
|
+
|
|
152
|
+
api = oauth2.get_api(token.access_token)
|
|
153
|
+
print(api.get_user())
|
|
154
|
+
|
|
155
|
+
api = API(token.access_token)
|
|
156
|
+
print(api.get_user())
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 客户端模式
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
from bgesdk import OAuth2, API
|
|
163
|
+
|
|
164
|
+
client_id = 'demo'
|
|
165
|
+
client_secret = 'demo'
|
|
166
|
+
oauth2 = OAuth2(
|
|
167
|
+
client_id, client_secret,
|
|
168
|
+
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
169
|
+
verbose=False)
|
|
170
|
+
token = oauth2.get_credentials_token()
|
|
171
|
+
|
|
172
|
+
api = oauth2.get_api(token.access_token)
|
|
173
|
+
print(api.get_variants('E-B1243433', 'rs333'))
|
|
174
|
+
|
|
175
|
+
api = API(token.access_token)
|
|
176
|
+
print(api.get_variants('E-B1243433', 'rs333'))
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
# Contributors
|
|
180
|
+
|
|
181
|
+
* xiangji1204's [github](https://github.com/xiangji1204)
|
|
182
|
+
* leafcoder(leafcoder@gmail.com)'s [github](https://github.com/leafcoder)
|
|
@@ -633,7 +633,7 @@ class API(object):
|
|
|
633
633
|
result['result'] = [models.Model(item) for item in result['result']]
|
|
634
634
|
return result
|
|
635
635
|
|
|
636
|
-
def get_upload_token(self, **kwargs):
|
|
636
|
+
def get_upload_token(self, region_id=None, internal=False, **kwargs):
|
|
637
637
|
"""获取文件上传授权
|
|
638
638
|
|
|
639
639
|
获取的授权仅包括当前目录(不含子目录)下的文件读、写权限;
|
|
@@ -644,15 +644,21 @@ class API(object):
|
|
|
644
644
|
timeout = self.timeout
|
|
645
645
|
verbose = self.verbose
|
|
646
646
|
max_retries = self.max_retries
|
|
647
|
+
data = {}
|
|
648
|
+
data.update(kwargs)
|
|
649
|
+
data.update({
|
|
650
|
+
'region_id': region_id,
|
|
651
|
+
'internal': internal,
|
|
652
|
+
})
|
|
647
653
|
request = HTTPRequest(
|
|
648
654
|
self.endpoint, max_retries=max_retries, verbose=verbose)
|
|
649
655
|
request.set_authorization(self.token_type, self.access_token)
|
|
650
|
-
result = request.post('/sts/token', data=
|
|
656
|
+
result = request.post('/sts/token', data=data, timeout=timeout)
|
|
651
657
|
return models.Model(result)
|
|
652
658
|
|
|
653
659
|
def upload(self, filename, file_or_string, part_size=None,
|
|
654
660
|
multipart_threshold=None, multipart_num_threads=None,
|
|
655
|
-
cmk_id=None):
|
|
661
|
+
cmk_id=None, region_id=None, internal=False):
|
|
656
662
|
"""上传文件
|
|
657
663
|
|
|
658
664
|
Args:
|
|
@@ -663,11 +669,16 @@ class API(object):
|
|
|
663
669
|
multipart_num_threads: 分片上传缺省线程数, 默认 4;
|
|
664
670
|
cmk_id (str): 阿里云 KMS 服务用户主密钥 ID,加密上传时提供 CMK ID 即可;
|
|
665
671
|
提供 cmk_id 后不支持分片上传;
|
|
672
|
+
region_id(str): 阿里云 OSS 区域编号,默认 oss-cn-shenzhen;
|
|
673
|
+
internal(bool): 是否使用内部 VPN 域名,默认 False;
|
|
666
674
|
|
|
667
675
|
Returns:
|
|
668
676
|
object_name: 文件的 OSS 对象名;
|
|
669
677
|
"""
|
|
670
|
-
token = self.get_upload_token(
|
|
678
|
+
token = self.get_upload_token(
|
|
679
|
+
region_id=region_id,
|
|
680
|
+
internal=internal
|
|
681
|
+
)
|
|
671
682
|
return self._upload(
|
|
672
683
|
token,
|
|
673
684
|
filename,
|
|
@@ -680,7 +691,7 @@ class API(object):
|
|
|
680
691
|
|
|
681
692
|
def batch_upload(self, files, part_size=None,
|
|
682
693
|
multipart_threshold=None, multipart_num_threads=None,
|
|
683
|
-
cmk_id=None):
|
|
694
|
+
cmk_id=None, region_id=None, internal=False):
|
|
684
695
|
"""批量上传文件
|
|
685
696
|
|
|
686
697
|
Args:
|
|
@@ -689,6 +700,8 @@ class API(object):
|
|
|
689
700
|
multipart_threshold(num): 上传数据大于或等于该值时分片上传, 默认 100M;
|
|
690
701
|
multipart_num_threads: 分片上传缺省线程数, 默认 4;
|
|
691
702
|
cmk_id (str): 阿里云 KMS 服务用户主密钥 ID,加密上传时提供 CMK ID 即可;
|
|
703
|
+
region_id(str): 阿里云 OSS 区域编号,默认 oss-cn-shenzhen;
|
|
704
|
+
internal(bool): 是否使用内部 VPN 域名,默认 False;
|
|
692
705
|
|
|
693
706
|
Returns:
|
|
694
707
|
object_name: 文件的 OSS 对象名;
|
|
@@ -698,7 +711,10 @@ class API(object):
|
|
|
698
711
|
object_names = []
|
|
699
712
|
if isinstance(files, (list, tuple)):
|
|
700
713
|
files = [files]
|
|
701
|
-
token = self.get_upload_token(
|
|
714
|
+
token = self.get_upload_token(
|
|
715
|
+
region_id=region_id,
|
|
716
|
+
internal=internal
|
|
717
|
+
)
|
|
702
718
|
for file_obj in files:
|
|
703
719
|
if not isinstance(file_obj, FileItem):
|
|
704
720
|
continue
|
|
@@ -721,7 +737,7 @@ class API(object):
|
|
|
721
737
|
|
|
722
738
|
def upload_dir(self, dirpath, part_size=None,
|
|
723
739
|
multipart_threshold=None, multipart_num_threads=None,
|
|
724
|
-
cmk_id=None):
|
|
740
|
+
cmk_id=None, region_id=None, internal=False):
|
|
725
741
|
"""上传目录下的文件(不递归上传子文件夹中文件)
|
|
726
742
|
|
|
727
743
|
仅上传目录中的文件,软链接、符号链接、文件夹均不会上传至平台。
|
|
@@ -736,7 +752,10 @@ class API(object):
|
|
|
736
752
|
Returns:
|
|
737
753
|
object_names: 上传的文件 OSS 对象名列表;
|
|
738
754
|
"""
|
|
739
|
-
token = self.get_upload_token(
|
|
755
|
+
token = self.get_upload_token(
|
|
756
|
+
region_id=region_id,
|
|
757
|
+
internal=internal
|
|
758
|
+
)
|
|
740
759
|
object_names = []
|
|
741
760
|
for filename in os.listdir(dirpath):
|
|
742
761
|
filepath = join(dirpath, filename)
|
|
@@ -871,18 +890,30 @@ class API(object):
|
|
|
871
890
|
timeout = self.timeout
|
|
872
891
|
try:
|
|
873
892
|
with requests.get(url, stream=True, timeout=timeout) as r:
|
|
874
|
-
total =
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
893
|
+
total = r.headers.get('content-length')
|
|
894
|
+
if total is not None:
|
|
895
|
+
total = int(total)
|
|
896
|
+
for chunk in r.iter_content(chunk_size):
|
|
897
|
+
size += len(chunk)
|
|
898
|
+
eq_size = int(size * prog_size / total)
|
|
899
|
+
equal_s = '=' * eq_size
|
|
900
|
+
blank_s = ' ' * (prog_size - eq_size)
|
|
901
|
+
progress = '>'.join((equal_s, blank_s))
|
|
902
|
+
percent = '%.2f%%' % float(size / total * 100)
|
|
903
|
+
sys.stdout.write(
|
|
904
|
+
'\r\t%s [%s]' % (percent.rjust(7), progress)
|
|
905
|
+
)
|
|
906
|
+
sys.stdout.flush()
|
|
907
|
+
fp.write(chunk)
|
|
908
|
+
else:
|
|
909
|
+
for chunk in r.iter_content(chunk_size):
|
|
910
|
+
size += len(chunk)
|
|
911
|
+
sys.stdout.write(
|
|
912
|
+
'\r\t已下载文件:%s' % human_byte(size).ljust(7)
|
|
913
|
+
)
|
|
914
|
+
sys.stdout.flush()
|
|
915
|
+
fp.write(chunk)
|
|
916
|
+
sys.stdout.write('\n')
|
|
886
917
|
flush_func = getattr(fp, 'flush', None)
|
|
887
918
|
if flush_func:
|
|
888
919
|
flush_func()
|
|
@@ -21,7 +21,7 @@ DEFAULT_TOKEN_SECTION = constants.DEFAULT_TOKEN_SECTION
|
|
|
21
21
|
class Command(BaseCommand):
|
|
22
22
|
|
|
23
23
|
order = 10
|
|
24
|
-
help='聚合组学数据(目前仅支持聚合数据流中符合平台设定 JSONPath 规则的数值型数据)。'
|
|
24
|
+
help = '聚合组学数据(目前仅支持聚合数据流中符合平台设定 JSONPath 规则的数值型数据)。'
|
|
25
25
|
|
|
26
26
|
def add_arguments(self, parser):
|
|
27
27
|
parser.add_argument(
|
{bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/get_samples.py
RENAMED
|
@@ -29,7 +29,7 @@ NOT_PARAM_FIELDS = (
|
|
|
29
29
|
class Command(BaseCommand):
|
|
30
30
|
|
|
31
31
|
order = 2
|
|
32
|
-
help='获取样品信息。'
|
|
32
|
+
help = '获取样品信息。'
|
|
33
33
|
|
|
34
34
|
def add_arguments(self, parser):
|
|
35
35
|
parser.add_argument(
|
|
@@ -69,7 +69,7 @@ class Command(BaseCommand):
|
|
|
69
69
|
'--statuses',
|
|
70
70
|
type=str,
|
|
71
71
|
help='数据状态,详情见 BGE 开放平台文档 https://api.bge.genomics.cn/doc/#/ot'
|
|
72
|
-
|
|
72
|
+
'hers/appendix?id=样品状态编码表'
|
|
73
73
|
)
|
|
74
74
|
parser.add_argument(
|
|
75
75
|
'--require_files',
|
{bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/upload.py
RENAMED
|
@@ -22,7 +22,7 @@ DEFAULT_TOKEN_SECTION = constants.DEFAULT_TOKEN_SECTION
|
|
|
22
22
|
class Command(BaseCommand):
|
|
23
23
|
|
|
24
24
|
order = 11
|
|
25
|
-
help='上传文件。'
|
|
25
|
+
help = '上传文件。'
|
|
26
26
|
|
|
27
27
|
def add_arguments(self, parser):
|
|
28
28
|
parser.add_argument(
|
|
@@ -57,6 +57,16 @@ class Command(BaseCommand):
|
|
|
57
57
|
'--cmk_id',
|
|
58
58
|
help='阿里云 KMS 服务密钥 ID, 提供时代表使用加密方式上传文件。'
|
|
59
59
|
)
|
|
60
|
+
parser.add_argument(
|
|
61
|
+
'-r',
|
|
62
|
+
'--region_id',
|
|
63
|
+
help='阿里云 OSS 区域编号,默认 oss-cn-shenzhen。'
|
|
64
|
+
)
|
|
65
|
+
parser.add_argument(
|
|
66
|
+
'--internal',
|
|
67
|
+
action="store_true",
|
|
68
|
+
help='是否使用内部 VPC 域名。'
|
|
69
|
+
)
|
|
60
70
|
parser.add_argument(
|
|
61
71
|
'-t',
|
|
62
72
|
'--access_token',
|
|
@@ -82,6 +92,8 @@ class Command(BaseCommand):
|
|
|
82
92
|
cmk_id = args.cmk_id
|
|
83
93
|
part_size = args.part_size
|
|
84
94
|
multipart_threshold = args.multipart_threshold
|
|
95
|
+
region_id = args.region_id
|
|
96
|
+
internal = args.internal
|
|
85
97
|
if not filename:
|
|
86
98
|
filename = posixpath.split(filepath)[1]
|
|
87
99
|
message = '正在上传文件 {}'.format(filepath)
|
|
@@ -93,7 +105,9 @@ class Command(BaseCommand):
|
|
|
93
105
|
part_size=part_size * 1024 * 1024,
|
|
94
106
|
multipart_threshold=multipart_threshold * 1024 * 1024,
|
|
95
107
|
multipart_num_threads=args.multipart_num_threads,
|
|
96
|
-
cmk_id=cmk_id
|
|
108
|
+
cmk_id=cmk_id,
|
|
109
|
+
region_id=region_id,
|
|
110
|
+
internal=internal,
|
|
97
111
|
)
|
|
98
112
|
except APIError as e:
|
|
99
113
|
output('[red]请求失败:[/red]')
|
{bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/upload_dir.py
RENAMED
|
@@ -26,7 +26,7 @@ DEFAULT_TOKEN_SECTION = constants.DEFAULT_TOKEN_SECTION
|
|
|
26
26
|
class Command(BaseCommand):
|
|
27
27
|
|
|
28
28
|
order = 12
|
|
29
|
-
help='上传目录下文件(不递归上传子目录中文件)。'
|
|
29
|
+
help = '上传目录下文件(不递归上传子目录中文件)。'
|
|
30
30
|
|
|
31
31
|
def add_arguments(self, parser):
|
|
32
32
|
parser.add_argument(
|
|
@@ -56,6 +56,16 @@ class Command(BaseCommand):
|
|
|
56
56
|
'--cmk_id',
|
|
57
57
|
help='阿里云 KMS 服务密钥 ID,提供时代表使用加密方式上传文件。'
|
|
58
58
|
)
|
|
59
|
+
parser.add_argument(
|
|
60
|
+
'-r',
|
|
61
|
+
'--region_id',
|
|
62
|
+
help='阿里云 OSS 区域编号,默认 oss-cn-shenzhen。'
|
|
63
|
+
)
|
|
64
|
+
parser.add_argument(
|
|
65
|
+
'--internal',
|
|
66
|
+
action="store_true",
|
|
67
|
+
help='是否使用内部 VPC 域名。'
|
|
68
|
+
)
|
|
59
69
|
parser.add_argument(
|
|
60
70
|
'-t',
|
|
61
71
|
'--access_token',
|
|
@@ -77,6 +87,8 @@ class Command(BaseCommand):
|
|
|
77
87
|
cmk_id = args.cmk_id
|
|
78
88
|
part_size = args.part_size
|
|
79
89
|
multipart_threshold = args.multipart_threshold
|
|
90
|
+
region_id = args.region_id
|
|
91
|
+
internal = args.internal
|
|
80
92
|
files = []
|
|
81
93
|
for filename in os.listdir(dirpath):
|
|
82
94
|
filepath = join(dirpath, filename)
|
|
@@ -93,7 +105,9 @@ class Command(BaseCommand):
|
|
|
93
105
|
part_size=part_size * 1024 * 1024,
|
|
94
106
|
multipart_threshold=multipart_threshold * 1024 * 1024,
|
|
95
107
|
multipart_num_threads=args.multipart_num_threads,
|
|
96
|
-
cmk_id=cmk_id
|
|
108
|
+
cmk_id=cmk_id,
|
|
109
|
+
region_id=region_id,
|
|
110
|
+
internal=internal,
|
|
97
111
|
)
|
|
98
112
|
except APIError as e:
|
|
99
113
|
output('[red]请求失败:[/red]')
|
bge-python-sdk-0.6.0/PKG-INFO
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: bge-python-sdk
|
|
3
|
-
Version: 0.6.0
|
|
4
|
-
Summary: 可用于调用 BGE 开放平台的相关接口。
|
|
5
|
-
Home-page: https://github.com/teambge/bge-python-sdk
|
|
6
|
-
Author: leafcoder,xiangji1204
|
|
7
|
-
Author-email: leafcoder@gmail.com,xiangji1204@genomics.cn
|
|
8
|
-
Maintainer: leafcoder
|
|
9
|
-
Maintainer-email: leafcoder@gmail.com
|
|
10
|
-
License: MIT
|
|
11
|
-
Description:
|
|
12
|
-
<div align="center">
|
|
13
|
-
|
|
14
|
-
# BGE 开放平台 SDK - Python 版
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<p>
|
|
18
|
-
<!-- Place this tag where you want the button to render. -->
|
|
19
|
-
<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">
|
|
20
|
-
<img alt="GitHub forks" src="https://img.shields.io/github/watchers/teambge/bge-python-sdk?style=social">
|
|
21
|
-
</a>
|
|
22
|
-
<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">
|
|
23
|
-
<img alt="GitHub forks" src="https://img.shields.io/github/stars/teambge/bge-python-sdk?style=social">
|
|
24
|
-
</a>
|
|
25
|
-
<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">
|
|
26
|
-
<img alt="GitHub forks" src="https://img.shields.io/github/forks/teambge/bge-python-sdk?style=social">
|
|
27
|
-
</a>
|
|
28
|
-
</p>
|
|
29
|
-
|
|
30
|
-
<p>
|
|
31
|
-
<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)">
|
|
32
|
-
<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">
|
|
33
|
-
<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">
|
|
34
|
-
<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">
|
|
35
|
-
<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">
|
|
36
|
-
</p>
|
|
37
|
-
|
|
38
|
-
<pre>
|
|
39
|
-
____ ____________ ______ __________ ______ _ __ _____ ____ __ __
|
|
40
|
-
/ __ )/ ____/ ____/ / __ \ \/ /_ __/ / / / __ \/ | / / / ___// __ \/ //_/
|
|
41
|
-
/ __ / / __/ __/ / /_/ /\ / / / / /_/ / / / / |/ / \__ \/ / / / ,<
|
|
42
|
-
/ /_/ / /_/ / /___ / ____/ / / / / / __ / /_/ / /| / ___/ / /_/ / /| |
|
|
43
|
-
/_____/\____/_____/ /_/ /_/ /_/ /_/ /_/\____/_/ |_/ /____/_____/_/ |_|
|
|
44
|
-
</pre>
|
|
45
|
-
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
BGE 开放平台 是一个跨越多级数据的(多)组学数据平台,开发者在获得用户授权后,将可以通过开放平台提供的 API 访问关联用户的(多)组学数据,甚至写入数据。
|
|
49
|
-
|
|
50
|
-
基于开放平台 API,开发者可避免重复开发采样、提取、测序和生信分析等繁复的流程,直接使用清洁的结构化数据。
|
|
51
|
-
|
|
52
|
-
开发者可以通过开放平台提供的 API 创建极具创意性的(多)组学应用,如:
|
|
53
|
-
|
|
54
|
-
* 包含药物代谢或药物服用建议的应用
|
|
55
|
-
* 包含体检数据和营养代谢基因的餐饮应用
|
|
56
|
-
* 包含肠道菌群数据和痛风相关基因的痛风管理应用
|
|
57
|
-
* 基于祖源成分的社交网络应用,等等
|
|
58
|
-
|
|
59
|
-
BGE 开放平台 API 基于 OAuth 2.0 开发,并使用 SSL/TLS 加密传输,确保用户数据正确无误地授权,并安全地传输到第三方应用,确保用户数据不会被未经授权的应用获得。
|
|
60
|
-
|
|
61
|
-
# 安装
|
|
62
|
-
|
|
63
|
-
推荐使用 pip 进行安装。
|
|
64
|
-
|
|
65
|
-
```shell
|
|
66
|
-
$ pip install -U bge-python-sdk
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
或者
|
|
70
|
-
|
|
71
|
-
```shell
|
|
72
|
-
$ make install
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
再或者
|
|
76
|
-
|
|
77
|
-
```shell
|
|
78
|
-
$ python setup.py install
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
# SDK 文档
|
|
82
|
-
|
|
83
|
-
更加详细的 SDK 文档请查看 [SDK Documents](https://api.bge.genomics.cn/doc/#/sdk/README)。
|
|
84
|
-
|
|
85
|
-
# 快速开始
|
|
86
|
-
|
|
87
|
-
BGE 开放平台支持 OAuth2 的两种模式,分别是用户授权模式、客户端模式。
|
|
88
|
-
|
|
89
|
-
详情请参考开放平台文档 [https://api.bge.genomics.cn/doc](https://api.bge.genomics.cn/doc) 。
|
|
90
|
-
|
|
91
|
-
## ENDPOINTS
|
|
92
|
-
|
|
93
|
-
BGE 开放平台提供了如下可用的 `endpoint`。
|
|
94
|
-
|
|
95
|
-
| endpoint | 解释 |
|
|
96
|
-
| --------------------------- | ----------------------------------------------------------- |
|
|
97
|
-
| https://api.bge.genomics.cn | **线上环境** 主域名地址 |
|
|
98
|
-
| https://api.bge.omgut.com | **线上环境** 副域名地址,主域名地址不可用时可替换此域名地址 |
|
|
99
|
-
|
|
100
|
-
## 授权码模式
|
|
101
|
-
|
|
102
|
-
```python
|
|
103
|
-
from bgesdk import OAuth2, API
|
|
104
|
-
|
|
105
|
-
code = '???????' # 用户确认授权后平台返回的授权码
|
|
106
|
-
client_id = 'demo'
|
|
107
|
-
client_secret = 'demo'
|
|
108
|
-
redirect_uri = 'http://test.cn'
|
|
109
|
-
oauth2 = OAuth2(
|
|
110
|
-
client_id, client_secret,
|
|
111
|
-
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
112
|
-
verbose=False)
|
|
113
|
-
token = oauth2.exchange_authorization_code(code, redirect_uri)
|
|
114
|
-
|
|
115
|
-
api = oauth2.get_api(token.access_token)
|
|
116
|
-
print(api.get_user())
|
|
117
|
-
|
|
118
|
-
api = API(token.access_token)
|
|
119
|
-
print(api.get_user())
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## 客户端模式
|
|
123
|
-
|
|
124
|
-
```python
|
|
125
|
-
from bgesdk import OAuth2, API
|
|
126
|
-
|
|
127
|
-
client_id = 'demo'
|
|
128
|
-
client_secret = 'demo'
|
|
129
|
-
oauth2 = OAuth2(
|
|
130
|
-
client_id, client_secret,
|
|
131
|
-
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
132
|
-
verbose=False)
|
|
133
|
-
token = oauth2.get_credentials_token()
|
|
134
|
-
|
|
135
|
-
api = oauth2.get_api(token.access_token)
|
|
136
|
-
print(api.get_variants('E-B1243433', 'rs333'))
|
|
137
|
-
|
|
138
|
-
api = API(token.access_token)
|
|
139
|
-
print(api.get_variants('E-B1243433', 'rs333'))
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
# Contributors
|
|
143
|
-
|
|
144
|
-
* xiangji1204's [github](https://github.com/xiangji1204)
|
|
145
|
-
* leafcoder(leafcoder@gmail.com)'s [github](https://github.com/leafcoder)
|
|
146
|
-
|
|
147
|
-
Keywords: bge-python-sdk bge bgesdk sdk
|
|
148
|
-
Platform: UNKNOWN
|
|
149
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
150
|
-
Classifier: Intended Audience :: Developers
|
|
151
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
152
|
-
Classifier: Natural Language :: Chinese (Simplified)
|
|
153
|
-
Classifier: Operating System :: OS Independent
|
|
154
|
-
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
|
|
155
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
156
|
-
Classifier: Programming Language :: Python
|
|
157
|
-
Classifier: Programming Language :: Python :: 3
|
|
158
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
159
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
160
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
161
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
162
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
163
|
-
Classifier: Topic :: Software Development :: Libraries
|
|
164
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
165
|
-
Classifier: Topic :: Utilities
|
|
166
|
-
Requires-Python: >=3.6.3
|
|
167
|
-
Description-Content-Type: text/markdown
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: bge-python-sdk
|
|
3
|
-
Version: 0.6.0
|
|
4
|
-
Summary: 可用于调用 BGE 开放平台的相关接口。
|
|
5
|
-
Home-page: https://github.com/teambge/bge-python-sdk
|
|
6
|
-
Author: leafcoder,xiangji1204
|
|
7
|
-
Author-email: leafcoder@gmail.com,xiangji1204@genomics.cn
|
|
8
|
-
Maintainer: leafcoder
|
|
9
|
-
Maintainer-email: leafcoder@gmail.com
|
|
10
|
-
License: MIT
|
|
11
|
-
Description:
|
|
12
|
-
<div align="center">
|
|
13
|
-
|
|
14
|
-
# BGE 开放平台 SDK - Python 版
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<p>
|
|
18
|
-
<!-- Place this tag where you want the button to render. -->
|
|
19
|
-
<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">
|
|
20
|
-
<img alt="GitHub forks" src="https://img.shields.io/github/watchers/teambge/bge-python-sdk?style=social">
|
|
21
|
-
</a>
|
|
22
|
-
<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">
|
|
23
|
-
<img alt="GitHub forks" src="https://img.shields.io/github/stars/teambge/bge-python-sdk?style=social">
|
|
24
|
-
</a>
|
|
25
|
-
<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">
|
|
26
|
-
<img alt="GitHub forks" src="https://img.shields.io/github/forks/teambge/bge-python-sdk?style=social">
|
|
27
|
-
</a>
|
|
28
|
-
</p>
|
|
29
|
-
|
|
30
|
-
<p>
|
|
31
|
-
<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)">
|
|
32
|
-
<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">
|
|
33
|
-
<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">
|
|
34
|
-
<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">
|
|
35
|
-
<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">
|
|
36
|
-
</p>
|
|
37
|
-
|
|
38
|
-
<pre>
|
|
39
|
-
____ ____________ ______ __________ ______ _ __ _____ ____ __ __
|
|
40
|
-
/ __ )/ ____/ ____/ / __ \ \/ /_ __/ / / / __ \/ | / / / ___// __ \/ //_/
|
|
41
|
-
/ __ / / __/ __/ / /_/ /\ / / / / /_/ / / / / |/ / \__ \/ / / / ,<
|
|
42
|
-
/ /_/ / /_/ / /___ / ____/ / / / / / __ / /_/ / /| / ___/ / /_/ / /| |
|
|
43
|
-
/_____/\____/_____/ /_/ /_/ /_/ /_/ /_/\____/_/ |_/ /____/_____/_/ |_|
|
|
44
|
-
</pre>
|
|
45
|
-
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
BGE 开放平台 是一个跨越多级数据的(多)组学数据平台,开发者在获得用户授权后,将可以通过开放平台提供的 API 访问关联用户的(多)组学数据,甚至写入数据。
|
|
49
|
-
|
|
50
|
-
基于开放平台 API,开发者可避免重复开发采样、提取、测序和生信分析等繁复的流程,直接使用清洁的结构化数据。
|
|
51
|
-
|
|
52
|
-
开发者可以通过开放平台提供的 API 创建极具创意性的(多)组学应用,如:
|
|
53
|
-
|
|
54
|
-
* 包含药物代谢或药物服用建议的应用
|
|
55
|
-
* 包含体检数据和营养代谢基因的餐饮应用
|
|
56
|
-
* 包含肠道菌群数据和痛风相关基因的痛风管理应用
|
|
57
|
-
* 基于祖源成分的社交网络应用,等等
|
|
58
|
-
|
|
59
|
-
BGE 开放平台 API 基于 OAuth 2.0 开发,并使用 SSL/TLS 加密传输,确保用户数据正确无误地授权,并安全地传输到第三方应用,确保用户数据不会被未经授权的应用获得。
|
|
60
|
-
|
|
61
|
-
# 安装
|
|
62
|
-
|
|
63
|
-
推荐使用 pip 进行安装。
|
|
64
|
-
|
|
65
|
-
```shell
|
|
66
|
-
$ pip install -U bge-python-sdk
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
或者
|
|
70
|
-
|
|
71
|
-
```shell
|
|
72
|
-
$ make install
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
再或者
|
|
76
|
-
|
|
77
|
-
```shell
|
|
78
|
-
$ python setup.py install
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
# SDK 文档
|
|
82
|
-
|
|
83
|
-
更加详细的 SDK 文档请查看 [SDK Documents](https://api.bge.genomics.cn/doc/#/sdk/README)。
|
|
84
|
-
|
|
85
|
-
# 快速开始
|
|
86
|
-
|
|
87
|
-
BGE 开放平台支持 OAuth2 的两种模式,分别是用户授权模式、客户端模式。
|
|
88
|
-
|
|
89
|
-
详情请参考开放平台文档 [https://api.bge.genomics.cn/doc](https://api.bge.genomics.cn/doc) 。
|
|
90
|
-
|
|
91
|
-
## ENDPOINTS
|
|
92
|
-
|
|
93
|
-
BGE 开放平台提供了如下可用的 `endpoint`。
|
|
94
|
-
|
|
95
|
-
| endpoint | 解释 |
|
|
96
|
-
| --------------------------- | ----------------------------------------------------------- |
|
|
97
|
-
| https://api.bge.genomics.cn | **线上环境** 主域名地址 |
|
|
98
|
-
| https://api.bge.omgut.com | **线上环境** 副域名地址,主域名地址不可用时可替换此域名地址 |
|
|
99
|
-
|
|
100
|
-
## 授权码模式
|
|
101
|
-
|
|
102
|
-
```python
|
|
103
|
-
from bgesdk import OAuth2, API
|
|
104
|
-
|
|
105
|
-
code = '???????' # 用户确认授权后平台返回的授权码
|
|
106
|
-
client_id = 'demo'
|
|
107
|
-
client_secret = 'demo'
|
|
108
|
-
redirect_uri = 'http://test.cn'
|
|
109
|
-
oauth2 = OAuth2(
|
|
110
|
-
client_id, client_secret,
|
|
111
|
-
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
112
|
-
verbose=False)
|
|
113
|
-
token = oauth2.exchange_authorization_code(code, redirect_uri)
|
|
114
|
-
|
|
115
|
-
api = oauth2.get_api(token.access_token)
|
|
116
|
-
print(api.get_user())
|
|
117
|
-
|
|
118
|
-
api = API(token.access_token)
|
|
119
|
-
print(api.get_user())
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## 客户端模式
|
|
123
|
-
|
|
124
|
-
```python
|
|
125
|
-
from bgesdk import OAuth2, API
|
|
126
|
-
|
|
127
|
-
client_id = 'demo'
|
|
128
|
-
client_secret = 'demo'
|
|
129
|
-
oauth2 = OAuth2(
|
|
130
|
-
client_id, client_secret,
|
|
131
|
-
endpoint='https://api.bge.genomics.cn', max_retries=3, timeout=16,
|
|
132
|
-
verbose=False)
|
|
133
|
-
token = oauth2.get_credentials_token()
|
|
134
|
-
|
|
135
|
-
api = oauth2.get_api(token.access_token)
|
|
136
|
-
print(api.get_variants('E-B1243433', 'rs333'))
|
|
137
|
-
|
|
138
|
-
api = API(token.access_token)
|
|
139
|
-
print(api.get_variants('E-B1243433', 'rs333'))
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
# Contributors
|
|
143
|
-
|
|
144
|
-
* xiangji1204's [github](https://github.com/xiangji1204)
|
|
145
|
-
* leafcoder(leafcoder@gmail.com)'s [github](https://github.com/leafcoder)
|
|
146
|
-
|
|
147
|
-
Keywords: bge-python-sdk bge bgesdk sdk
|
|
148
|
-
Platform: UNKNOWN
|
|
149
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
150
|
-
Classifier: Intended Audience :: Developers
|
|
151
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
152
|
-
Classifier: Natural Language :: Chinese (Simplified)
|
|
153
|
-
Classifier: Operating System :: OS Independent
|
|
154
|
-
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
|
|
155
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
156
|
-
Classifier: Programming Language :: Python
|
|
157
|
-
Classifier: Programming Language :: Python :: 3
|
|
158
|
-
Classifier: Programming Language :: Python :: 3.6
|
|
159
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
160
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
161
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
162
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
163
|
-
Classifier: Topic :: Software Development :: Libraries
|
|
164
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
165
|
-
Classifier: Topic :: Utilities
|
|
166
|
-
Requires-Python: >=3.6.3
|
|
167
|
-
Description-Content-Type: text/markdown
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bge-python-sdk-0.6.0 → bge-python-sdk-0.6.2}/bgesdk/management/commands/api/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|