51tracking-sdk-python
=================
The Python SDK of 51Tracking API
Contact: <service@51tracking.org>
## Official document
[Document](https://www.51tracking.com/v4/api-index/API-)
Supported Python Versions
=========================
- 3.6
- 3.7
- 3.8
- 3.9
- 3.10
- pypy3
## Index
1. [Installation](https://github.com/51tracking/51tracking-sdk-python#installation)
2. [Testing](https://github.com/51tracking/51tracking-sdk-python#testing)
3. [Error Handling](https://github.com/51tracking/51tracking-sdk-python#error-handling)
4. SDK
1. [Couriers](https://github.com/51tracking/51tracking-sdk-python#couriers)
2. [Trackings](https://github.com/51tracking/51tracking-sdk-python#trackings)
3. [Air Waybill](https://github.com/51tracking/51tracking-sdk-python#air-waybill)
## Installation
```
$ pip install 51tracking
```
## Via source code
下载代码压缩包,无需解压缩,进入源代码根目录,然后运行:
```
$ pip install 51tracking-sdk-python.zip
```
## Quick Start
```python
import tracking51
tracking51.api_key = 'you api key'
try:
couriers = tracking51.courier.get_all_couriers()
print(couriers)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
## Testing
```
pytest
```
## Error handling
**Throw** by the new SDK client
```python
import tracking51
tracking51.api_key = ''
try:
couriers = tracking51.courier.get_all_couriers()
print(couriers)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
# API Key is missing
```
**Throw** by the parameter validation in function
```python
import tracking51
tracking51.api_key = 'you api key'
try:
params = {'tracking_number': '','courier_code':'usps'}
result = tracking51.tracking.create_tracking(params)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
# Tracking number cannot be empty
```
## Examples
## Couriers
##### 返回所有支持的快递公司列表
https://api.51Tracking.com/v4/couriers/all
```python
try:
result = tracking51.courier.get_all_couriers()
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
## Trackings
##### 单个物流单号实时添加且查询
https://api.51Tracking.com/v4/trackings/create
```python
try:
params = {'tracking_number': '92612903029511573030094547','courier_code':'usps'}
result = tracking51.tracking.create_tracking(params)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
##### 获取多个物流单号的查询结果
https://api.51Tracking.com/v4/trackings/get
```python
try:
# Perform queries based on various conditions
# params = {'tracking_numbers': '92612903029511573030094547', 'courier_code': 'usps'}
# params = {'tracking_numbers': '92612903029511573030094547,92612903029511573030094548', 'courier_code': 'usps'}
params = {'created_date_min': '2023-08-23T14:00:00+00:00', 'created_date_max': '2023-08-23T15:04:00+00:00'}
result = tracking51.tracking.get_tracking_results(params)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
##### 添加多个物流单号(一次调用最多创建 40 个物流单号)
https://api.51Tracking.com/v4/trackings/batch
```python
try:
params = [{'tracking_number': '92612903029511573030094593', 'courier_code': 'usps'},
{'tracking_number': '92612903029511573030094594', 'courier_code': 'usps'}]
result = tracking51.tracking.batch_create_trackings(params)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
##### 根据ID更新物流信息
https://api.51Tracking.com/v4/trackings/update/{id}
```python
params = {'customer_name': 'New name', 'note': 'New tests order note'}
id_string = "9a2f732e29b5ed2071d4cf6b5f4a3d19"
try:
result = tracking51.tracking.update_tracking_by_id(id_string, params)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
##### 通过ID删除单号
https://api.51Tracking.com/v4/trackings/delete/{id}
```python
id_string = "9a2f7d1e8b912b729388c5835c188c28"
try:
result = tracking51.tracking.batch_create_trackings(params)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
##### 通过ID重新查询过期的单号
https://api.51Tracking.com/v4/trackings/retrack/{id}
```python
id_string = "9a2f7d1e8b912b729388c5835c188c28"
try:
result = tracking51.tracking.retrack_tracking_by_id(id_string)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
## Air Waybill
##### 查询航空运单的结果
https://api.51Tracking.com/v4/awb
```python
params = {'awb_number': '235-69030430'}
try:
result = tracking51.air_waybill.create_an_air_waybill(params)
print(result)
except tracking51.exception.Tracking51Exception as ce:
print(ce)
except Exception as e:
print("other error:", e)
```
## 响应状态码
51Tracking 使用传统的HTTP状态码来表明 API 请求的状态。通常,2xx形式的状态码表示请求成功,4XX形式的状态码表请求发生错误(比如:必要参数缺失),5xx格式的状态码表示 51tracking 的服务器可能发生了问题。
| Http CODE | META CODE | TYPE | MESSAGE |
|-----------|-----------|--------------------|-------------------------------------------|
| 200 | 200 | <code>成功</code> | 请求响应成功。 |
| 400 | 400 | <code>错误请求</code> | 请求类型错误。请查看 API 文档以了解此 API 的请求类型。 |
| 400 | 4101 | <code>错误请求</code> | 物流单号已存在。 |
| 400 | 4102 | <code>错误请求</code> | 物流单号不存在。请先使用「Create接口」将单号添加至系统。 |
| 400 | 4103 | <code>错误请求</code> | 您已超出 API 调用的创建数量。每次创建的最大数量为 40 个快递单号。 |
| 400 | 4110 | <code>错误请求</code> | 物流单号(tracking_number) 不符合规则。 |
| 400 | 4111 | <code>错误请求</code> | 物流单号(tracking_number)为必填字段。 |
| 400 | 4112 | <code>错误请求</code> | 查询ID无效。 |
| 400 | 4113 | <code>错误请求</code> | 不允许重新查询。您只能重新查询过期的物流单号。 |
| 400 | 4120 | <code>错误请求</code> | 物流商简码(courier_code)的值无效。 |
| 400 | 4121 | <code>错误请求</code> | 无法识别物流商。 |
| 400 | 4122 | <code>错误请求</code> | 特殊物流商字段缺失或填写不符合规范。 |
| 400 | 4130 | <code>错误请求</code> | 请求参数的格式无效。 |
| 400 | 4160 | <code>错误请求</code> | 空运单号(awb_number)是必需的或有效的格式。 |
| 400 | 4161 | <code>错误请求</code> | 此空运航空不支持查询。 |
| 400 | 4165 | <code>错误请求</code> | 查询失败:未创建空运单号。 |
| 400 | 4166 | <code>错误请求</code> | 删除未创建的空运单号失败。 |
| 400 | 4167 | <code>错误请求</code> | 空运单号已存在,无需再次创建。 |
| 400 | 4190 | <code>错误请求</code> | 当前查询额度不足。 |
| 401 | 401 | <code>未经授权</code> | 身份验证失败或没有权限。请检查并确保您的 API 密钥正确无误。 |
| 403 | 403 | <code>禁止</code> | 禁止访问。请求被拒绝或不允许访问。 |
| 404 | 404 | <code>未找到</code> | 页面不存在。请检查并确保您的链接正确无误。 |
| 429 | 429 | <code>太多请求</code> | 超出 API 请求限制,请稍后重试。请查看 API 文档以了解此 API 的限制。 |
| 500 | 511 | <code>服务器错误</code> | 服务器错误。请联系我们: service@51Tracking.org。 |
| 500 | 512 | <code>服务器错误</code> | 服务器错误。请联系我们:service@51Tracking.org。 |
| 500 | 513 | <code>服务器错误</code> | 服务器错误。请联系我们: service@51Tracking.org。 |
Raw data
{
"_id": null,
"home_page": "https://www.51tracking.com/v4/api-index/API-",
"name": "51tracking",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<4.0",
"maintainer_email": "",
"keywords": "51tracking,api,tracking",
"author": "51Tracking",
"author_email": "service@51tracking.org",
"download_url": "https://files.pythonhosted.org/packages/34/4f/1c11d3d0844189776da48e455ad2c15ac3bf2cef53249fe1f0dad613d572/51tracking-0.1.1.tar.gz",
"platform": null,
"description": "51tracking-sdk-python\n=================\n\nThe Python SDK of 51Tracking API\n\nContact: <service@51tracking.org>\n\n## Official document\n\n[Document](https://www.51tracking.com/v4/api-index/API-)\n\nSupported Python Versions\n=========================\n\n- 3.6\n- 3.7\n- 3.8\n- 3.9\n- 3.10\n- pypy3\n\n## Index\n1. [Installation](https://github.com/51tracking/51tracking-sdk-python#installation)\n2. [Testing](https://github.com/51tracking/51tracking-sdk-python#testing)\n3. [Error Handling](https://github.com/51tracking/51tracking-sdk-python#error-handling)\n4. SDK\n 1. [Couriers](https://github.com/51tracking/51tracking-sdk-python#couriers)\n 2. [Trackings](https://github.com/51tracking/51tracking-sdk-python#trackings)\n 3. [Air Waybill](https://github.com/51tracking/51tracking-sdk-python#air-waybill)\n\n\n## Installation\n\n```\n$ pip install 51tracking\n```\n\n## Via source code\n\n\u4e0b\u8f7d\u4ee3\u7801\u538b\u7f29\u5305\uff0c\u65e0\u9700\u89e3\u538b\u7f29\uff0c\u8fdb\u5165\u6e90\u4ee3\u7801\u6839\u76ee\u5f55\uff0c\u7136\u540e\u8fd0\u884c\uff1a\n\n```\n$ pip install 51tracking-sdk-python.zip\n```\n\n## Quick Start\n\n```python\nimport tracking51\n\ntracking51.api_key = 'you api key'\n\ntry:\n couriers = tracking51.courier.get_all_couriers()\n print(couriers)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n## Testing\n```\npytest\n```\n\n## Error handling\n\n**Throw** by the new SDK client\n\n```python\nimport tracking51\n\ntracking51.api_key = ''\n\ntry:\n couriers = tracking51.courier.get_all_couriers()\n print(couriers)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\n\n# API Key is missing\n```\n\n**Throw** by the parameter validation in function\n\n```python\nimport tracking51\n\ntracking51.api_key = 'you api key'\n\ntry:\n params = {'tracking_number': '','courier_code':'usps'}\n result = tracking51.tracking.create_tracking(params)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\n\n# Tracking number cannot be empty\n```\n## Examples\n\n## Couriers\n##### \u8fd4\u56de\u6240\u6709\u652f\u6301\u7684\u5feb\u9012\u516c\u53f8\u5217\u8868\nhttps://api.51Tracking.com/v4/couriers/all\n```python\ntry:\n result = tracking51.courier.get_all_couriers()\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n## Trackings\n##### \u5355\u4e2a\u7269\u6d41\u5355\u53f7\u5b9e\u65f6\u6dfb\u52a0\u4e14\u67e5\u8be2\nhttps://api.51Tracking.com/v4/trackings/create\n```python\ntry:\n params = {'tracking_number': '92612903029511573030094547','courier_code':'usps'}\n result = tracking51.tracking.create_tracking(params)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n##### \u83b7\u53d6\u591a\u4e2a\u7269\u6d41\u5355\u53f7\u7684\u67e5\u8be2\u7ed3\u679c\nhttps://api.51Tracking.com/v4/trackings/get\n```python\ntry:\n # Perform queries based on various conditions\n # params = {'tracking_numbers': '92612903029511573030094547', 'courier_code': 'usps'}\n # params = {'tracking_numbers': '92612903029511573030094547,92612903029511573030094548', 'courier_code': 'usps'}\n params = {'created_date_min': '2023-08-23T14:00:00+00:00', 'created_date_max': '2023-08-23T15:04:00+00:00'}\n result = tracking51.tracking.get_tracking_results(params)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n##### \u6dfb\u52a0\u591a\u4e2a\u7269\u6d41\u5355\u53f7\uff08\u4e00\u6b21\u8c03\u7528\u6700\u591a\u521b\u5efa 40 \u4e2a\u7269\u6d41\u5355\u53f7\uff09\nhttps://api.51Tracking.com/v4/trackings/batch\n```python\ntry:\n params = [{'tracking_number': '92612903029511573030094593', 'courier_code': 'usps'},\n {'tracking_number': '92612903029511573030094594', 'courier_code': 'usps'}]\n result = tracking51.tracking.batch_create_trackings(params)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n##### \u6839\u636eID\u66f4\u65b0\u7269\u6d41\u4fe1\u606f\nhttps://api.51Tracking.com/v4/trackings/update/{id}\n```python\nparams = {'customer_name': 'New name', 'note': 'New tests order note'}\nid_string = \"9a2f732e29b5ed2071d4cf6b5f4a3d19\"\ntry:\n result = tracking51.tracking.update_tracking_by_id(id_string, params)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n##### \u901a\u8fc7ID\u5220\u9664\u5355\u53f7\nhttps://api.51Tracking.com/v4/trackings/delete/{id}\n```python\nid_string = \"9a2f7d1e8b912b729388c5835c188c28\"\ntry:\n result = tracking51.tracking.batch_create_trackings(params)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n##### \u901a\u8fc7ID\u91cd\u65b0\u67e5\u8be2\u8fc7\u671f\u7684\u5355\u53f7\nhttps://api.51Tracking.com/v4/trackings/retrack/{id}\n```python\nid_string = \"9a2f7d1e8b912b729388c5835c188c28\"\ntry:\n result = tracking51.tracking.retrack_tracking_by_id(id_string)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n## Air Waybill\n##### \u67e5\u8be2\u822a\u7a7a\u8fd0\u5355\u7684\u7ed3\u679c\nhttps://api.51Tracking.com/v4/awb\n```python\nparams = {'awb_number': '235-69030430'}\ntry:\n result = tracking51.air_waybill.create_an_air_waybill(params)\n print(result)\nexcept tracking51.exception.Tracking51Exception as ce:\n print(ce)\nexcept Exception as e:\n print(\"other error:\", e) \n\n```\n\n## \u54cd\u5e94\u72b6\u6001\u7801\n\n51Tracking \u4f7f\u7528\u4f20\u7edf\u7684HTTP\u72b6\u6001\u7801\u6765\u8868\u660e API \u8bf7\u6c42\u7684\u72b6\u6001\u3002\u901a\u5e38\uff0c2xx\u5f62\u5f0f\u7684\u72b6\u6001\u7801\u8868\u793a\u8bf7\u6c42\u6210\u529f\uff0c4XX\u5f62\u5f0f\u7684\u72b6\u6001\u7801\u8868\u8bf7\u6c42\u53d1\u751f\u9519\u8bef\uff08\u6bd4\u5982\uff1a\u5fc5\u8981\u53c2\u6570\u7f3a\u5931\uff09\uff0c5xx\u683c\u5f0f\u7684\u72b6\u6001\u7801\u8868\u793a 51tracking \u7684\u670d\u52a1\u5668\u53ef\u80fd\u53d1\u751f\u4e86\u95ee\u9898\u3002\n\n| Http CODE | META CODE | TYPE | MESSAGE |\n|-----------|-----------|--------------------|-------------------------------------------|\n| 200 | 200 | <code>\u6210\u529f</code> | \u8bf7\u6c42\u54cd\u5e94\u6210\u529f\u3002 |\n| 400 | 400 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u8bf7\u6c42\u7c7b\u578b\u9519\u8bef\u3002\u8bf7\u67e5\u770b API \u6587\u6863\u4ee5\u4e86\u89e3\u6b64 API \u7684\u8bf7\u6c42\u7c7b\u578b\u3002 |\n| 400 | 4101 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7269\u6d41\u5355\u53f7\u5df2\u5b58\u5728\u3002 |\n| 400 | 4102 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7269\u6d41\u5355\u53f7\u4e0d\u5b58\u5728\u3002\u8bf7\u5148\u4f7f\u7528\u300cCreate\u63a5\u53e3\u300d\u5c06\u5355\u53f7\u6dfb\u52a0\u81f3\u7cfb\u7edf\u3002 |\n| 400 | 4103 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u60a8\u5df2\u8d85\u51fa API \u8c03\u7528\u7684\u521b\u5efa\u6570\u91cf\u3002\u6bcf\u6b21\u521b\u5efa\u7684\u6700\u5927\u6570\u91cf\u4e3a 40 \u4e2a\u5feb\u9012\u5355\u53f7\u3002 |\n| 400 | 4110 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7269\u6d41\u5355\u53f7(tracking_number) \u4e0d\u7b26\u5408\u89c4\u5219\u3002 |\n| 400 | 4111 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7269\u6d41\u5355\u53f7(tracking_number)\u4e3a\u5fc5\u586b\u5b57\u6bb5\u3002 |\n| 400 | 4112 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u67e5\u8be2ID\u65e0\u6548\u3002 |\n| 400 | 4113 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u4e0d\u5141\u8bb8\u91cd\u65b0\u67e5\u8be2\u3002\u60a8\u53ea\u80fd\u91cd\u65b0\u67e5\u8be2\u8fc7\u671f\u7684\u7269\u6d41\u5355\u53f7\u3002 |\n| 400 | 4120 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7269\u6d41\u5546\u7b80\u7801(courier_code)\u7684\u503c\u65e0\u6548\u3002 |\n| 400 | 4121 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u65e0\u6cd5\u8bc6\u522b\u7269\u6d41\u5546\u3002 |\n| 400 | 4122 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7279\u6b8a\u7269\u6d41\u5546\u5b57\u6bb5\u7f3a\u5931\u6216\u586b\u5199\u4e0d\u7b26\u5408\u89c4\u8303\u3002 |\n| 400 | 4130 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u8bf7\u6c42\u53c2\u6570\u7684\u683c\u5f0f\u65e0\u6548\u3002 |\n| 400 | 4160 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7a7a\u8fd0\u5355\u53f7(awb_number)\u662f\u5fc5\u9700\u7684\u6216\u6709\u6548\u7684\u683c\u5f0f\u3002 |\n| 400 | 4161 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u6b64\u7a7a\u8fd0\u822a\u7a7a\u4e0d\u652f\u6301\u67e5\u8be2\u3002 |\n| 400 | 4165 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u67e5\u8be2\u5931\u8d25\uff1a\u672a\u521b\u5efa\u7a7a\u8fd0\u5355\u53f7\u3002 |\n| 400 | 4166 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u5220\u9664\u672a\u521b\u5efa\u7684\u7a7a\u8fd0\u5355\u53f7\u5931\u8d25\u3002 |\n| 400 | 4167 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u7a7a\u8fd0\u5355\u53f7\u5df2\u5b58\u5728\uff0c\u65e0\u9700\u518d\u6b21\u521b\u5efa\u3002 |\n| 400 | 4190 | <code>\u9519\u8bef\u8bf7\u6c42</code> | \u5f53\u524d\u67e5\u8be2\u989d\u5ea6\u4e0d\u8db3\u3002 |\n| 401 | 401 | <code>\u672a\u7ecf\u6388\u6743</code> | \u8eab\u4efd\u9a8c\u8bc1\u5931\u8d25\u6216\u6ca1\u6709\u6743\u9650\u3002\u8bf7\u68c0\u67e5\u5e76\u786e\u4fdd\u60a8\u7684 API \u5bc6\u94a5\u6b63\u786e\u65e0\u8bef\u3002 |\n| 403 | 403 | <code>\u7981\u6b62</code> | \u7981\u6b62\u8bbf\u95ee\u3002\u8bf7\u6c42\u88ab\u62d2\u7edd\u6216\u4e0d\u5141\u8bb8\u8bbf\u95ee\u3002 |\n| 404 | 404 | <code>\u672a\u627e\u5230</code> | \u9875\u9762\u4e0d\u5b58\u5728\u3002\u8bf7\u68c0\u67e5\u5e76\u786e\u4fdd\u60a8\u7684\u94fe\u63a5\u6b63\u786e\u65e0\u8bef\u3002 |\n| 429 | 429 | <code>\u592a\u591a\u8bf7\u6c42</code> | \u8d85\u51fa API \u8bf7\u6c42\u9650\u5236\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002\u8bf7\u67e5\u770b API \u6587\u6863\u4ee5\u4e86\u89e3\u6b64 API \u7684\u9650\u5236\u3002 |\n| 500 | 511 | <code>\u670d\u52a1\u5668\u9519\u8bef</code> | \u670d\u52a1\u5668\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u6211\u4eec\uff1a service@51Tracking.org\u3002 |\n| 500 | 512 | <code>\u670d\u52a1\u5668\u9519\u8bef</code> | \u670d\u52a1\u5668\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u6211\u4eec\uff1aservice@51Tracking.org\u3002 |\n| 500 | 513 | <code>\u670d\u52a1\u5668\u9519\u8bef</code> | \u670d\u52a1\u5668\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u6211\u4eec\uff1a service@51Tracking.org\u3002 |",
"bugtrack_url": null,
"license": "",
"summary": "The Python SDK of 51Tracking API",
"version": "0.1.1",
"project_urls": {
"Documentation": "https://github.com/51tracking/51tracking-sdk-python",
"Homepage": "https://www.51tracking.com/v4/api-index/API-",
"Repository": "https://github.com/51tracking/51tracking-sdk-python"
},
"split_keywords": [
"51tracking",
"api",
"tracking"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1ffc21a01312a87fe9e90455752455b58434c7c91284520c941925b35522fc26",
"md5": "61a3938ddfbe644916b7cc021efc2223",
"sha256": "7fe9aa9ddb0de1cf85207c47b43b6a564fcef74ed2473a71f2f36927621d6fbc"
},
"downloads": -1,
"filename": "51tracking-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "61a3938ddfbe644916b7cc021efc2223",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7,<4.0",
"size": 11616,
"upload_time": "2023-11-07T05:59:50",
"upload_time_iso_8601": "2023-11-07T05:59:50.745548Z",
"url": "https://files.pythonhosted.org/packages/1f/fc/21a01312a87fe9e90455752455b58434c7c91284520c941925b35522fc26/51tracking-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "344f1c11d3d0844189776da48e455ad2c15ac3bf2cef53249fe1f0dad613d572",
"md5": "c4353d07545c2605fd2b246a105dd7ed",
"sha256": "c85b3c0557da00865c1a5e6bcc527b65f7a1ddc119756834a9f31e3c0bad3a2f"
},
"downloads": -1,
"filename": "51tracking-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "c4353d07545c2605fd2b246a105dd7ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7,<4.0",
"size": 8282,
"upload_time": "2023-11-07T05:59:52",
"upload_time_iso_8601": "2023-11-07T05:59:52.181098Z",
"url": "https://files.pythonhosted.org/packages/34/4f/1c11d3d0844189776da48e455ad2c15ac3bf2cef53249fe1f0dad613d572/51tracking-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-07 05:59:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "51tracking",
"github_project": "51tracking-sdk-python",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "51tracking"
}