# layerx-python-sdk
LayerX Python API Client
Sync (upload/download) with LayerX stacks via APIs from your local machine
You can
- Upload model runs data
## Installation
`$ pip install layerx-sdk`
## Usage
```python
import layerx
api_key = 'xxxxxxxxxx'
secret = 'xxxxxxxxxxx'
url = 'https://api.xxxx.layerx.ai'
client = layerx.LayerxClient(api_key, secret, url)
collection_base_path = 'path1/path2/'
#upload box type annotations
file_path_bbox = '/home/bob/mydata/example_bbox.json' #local file path
client.upload_modelrun_from_json(collection_base_path, 'test model v1.0.1', file_path_bbox, 'rectangle')
#upload polygon type annotations
file_path_polygon = '/home/bob/mydata/example_polygon.json'
client.upload_modelrun_from_json(collection_base_path, 'test model v1.0.2', file_path_polygon, 'polygon')
#upload line type annotations
file_path_line = '/home/bob/mydata/example_line.json'
client.upload_modelrun_from_json(collection_base_path, 'test model v1.0.3', file_path_line, 'line')
```
## Sample Data
**Box Geometry**
```json
{
"images":[
{
"image":"000000397133.jpg",
"annotations":[
{
"bbox":[
217.62,
240.54,
38.99,
57.75
],
"label":"kitchen",
"metadata":{
"name":"bottle"
},
"confidence":0.30611335805442985
}
]
}
]
}
```
**Polygon Geometry**
```json
{
"images":[
{
"image":"000000397133.jpg",
"annotations":[
{
"polygon":[
[
224.24,
297.18
],
[
228.29,
297.18
],
[
234.91,
298.29
],
[
243.0,
297.55
],
[
249.25,
296.45
],
[
252.19,
294.98
],
[
256.61,
292.4
],
[
254.4,
264.08
],
[
251.83,
262.61
],
[
241.53,
260.04
],
[
235.27,
259.67
],
[
230.49,
259.67
],
[
233.44,
255.25
],
[
237.48,
250.47
],
[
237.85,
243.85
],
[
237.11,
240.54
],
[
234.17,
242.01
],
[
228.65,
249.37
],
[
224.24,
255.62
],
[
220.93,
262.61
],
[
218.36,
267.39
],
[
217.62,
268.5
],
[
218.72,
295.71
],
[
225.34,
297.55
]
],
"label":"kitchen",
"metadata":{
"name":"bottle"
},
"confidence":0.8316836170368476
}
]
}
]
}
```
**Line Geometry**
```json
{
"images":[
{
"image":"000000397133.jpg",
"annotations":[
{
"line":[
[
217.62,
240.54
],
[
256.61,
240.54
],
[
256.61,
298.28999999999996
],
[
217.62,
298.28999999999996
]
],
"label":"kitchen",
"metadata":{
"name":"bottle"
},
"confidence":0.9496247739008129
}
]
}
]
}
```
Raw data
{
"_id": null,
"home_page": "",
"name": "layerx-sdk",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,datalake,datasetsync,ai,annotation,layerx,layernext,machine learning",
"author": "LayerNext",
"author_email": "<support@layernext.ai>",
"download_url": "https://files.pythonhosted.org/packages/9d/82/918b62875b18f659f62c7f6a438a3e64b50122aecca2e2a34fafeced7994/layerx-sdk-1.0.15.tar.gz",
"platform": null,
"description": "\n# layerx-python-sdk\n\nLayerX Python API Client\nSync (upload/download) with LayerX stacks via APIs from your local machine\n\nYou can\n- Upload model runs data\n\n\n## Installation\n\n`$ pip install layerx-sdk`\n\n## Usage\n\n```python\nimport layerx \n \napi_key = 'xxxxxxxxxx' \nsecret = 'xxxxxxxxxxx'\nurl = 'https://api.xxxx.layerx.ai'\n \nclient = layerx.LayerxClient(api_key, secret, url) \n\ncollection_base_path = 'path1/path2/'\n \n#upload box type annotations\nfile_path_bbox = '/home/bob/mydata/example_bbox.json' #local file path\nclient.upload_modelrun_from_json(collection_base_path, 'test model v1.0.1', file_path_bbox, 'rectangle')\n\n#upload polygon type annotations\nfile_path_polygon = '/home/bob/mydata/example_polygon.json'\nclient.upload_modelrun_from_json(collection_base_path, 'test model v1.0.2', file_path_polygon, 'polygon')\n\n#upload line type annotations\nfile_path_line = '/home/bob/mydata/example_line.json'\nclient.upload_modelrun_from_json(collection_base_path, 'test model v1.0.3', file_path_line, 'line')\n```\n\n## Sample Data\n\n**Box Geometry**\n```json\n{\n \"images\":[\n {\n \"image\":\"000000397133.jpg\",\n \"annotations\":[\n {\n \"bbox\":[\n 217.62,\n 240.54,\n 38.99,\n 57.75\n ],\n \"label\":\"kitchen\",\n \"metadata\":{\n \"name\":\"bottle\"\n },\n \"confidence\":0.30611335805442985\n }\n ]\n }\n ]\n}\n```\n\n**Polygon Geometry**\n```json\n{\n \"images\":[\n {\n \"image\":\"000000397133.jpg\",\n \"annotations\":[\n {\n \"polygon\":[\n [\n 224.24,\n 297.18\n ],\n [\n 228.29,\n 297.18\n ],\n [\n 234.91,\n 298.29\n ],\n [\n 243.0,\n 297.55\n ],\n [\n 249.25,\n 296.45\n ],\n [\n 252.19,\n 294.98\n ],\n [\n 256.61,\n 292.4\n ],\n [\n 254.4,\n 264.08\n ],\n [\n 251.83,\n 262.61\n ],\n [\n 241.53,\n 260.04\n ],\n [\n 235.27,\n 259.67\n ],\n [\n 230.49,\n 259.67\n ],\n [\n 233.44,\n 255.25\n ],\n [\n 237.48,\n 250.47\n ],\n [\n 237.85,\n 243.85\n ],\n [\n 237.11,\n 240.54\n ],\n [\n 234.17,\n 242.01\n ],\n [\n 228.65,\n 249.37\n ],\n [\n 224.24,\n 255.62\n ],\n [\n 220.93,\n 262.61\n ],\n [\n 218.36,\n 267.39\n ],\n [\n 217.62,\n 268.5\n ],\n [\n 218.72,\n 295.71\n ],\n [\n 225.34,\n 297.55\n ]\n ],\n \"label\":\"kitchen\",\n \"metadata\":{\n \"name\":\"bottle\"\n },\n \"confidence\":0.8316836170368476\n }\n ]\n }\n ]\n}\n```\n\n**Line Geometry**\n```json\n{\n \"images\":[\n {\n \"image\":\"000000397133.jpg\",\n \"annotations\":[\n {\n \"line\":[\n [\n 217.62,\n 240.54\n ],\n [\n 256.61,\n 240.54\n ],\n [\n 256.61,\n 298.28999999999996\n ],\n [\n 217.62,\n 298.28999999999996\n ]\n ],\n \"label\":\"kitchen\",\n \"metadata\":{\n \"name\":\"bottle\"\n },\n \"confidence\":0.9496247739008129\n }\n ]\n }\n ]\n}\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "LayerX Python SDK",
"version": "1.0.15",
"project_urls": null,
"split_keywords": [
"python",
"datalake",
"datasetsync",
"ai",
"annotation",
"layerx",
"layernext",
"machine learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2b6c18be8d5a5c3e67ef88398913fd64f5d5f5b91b994ec1e5ef56abf8e16a1c",
"md5": "e11dbf66d342a76058bc20984114a1d4",
"sha256": "d6891b56b8db4530782c9a0f16173d23c7bf3f987e8b1d9fa26d8c734cd71b01"
},
"downloads": -1,
"filename": "layerx_sdk-1.0.15-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e11dbf66d342a76058bc20984114a1d4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 37760,
"upload_time": "2023-07-03T06:13:26",
"upload_time_iso_8601": "2023-07-03T06:13:26.563567Z",
"url": "https://files.pythonhosted.org/packages/2b/6c/18be8d5a5c3e67ef88398913fd64f5d5f5b91b994ec1e5ef56abf8e16a1c/layerx_sdk-1.0.15-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d82918b62875b18f659f62c7f6a438a3e64b50122aecca2e2a34fafeced7994",
"md5": "2f7b32cf46be1501f8e38699f959cb7c",
"sha256": "c5306a32548f451c92bfbbbdb6da8b16c913ccf1dbbcc15b7e505eb8c0db39a6"
},
"downloads": -1,
"filename": "layerx-sdk-1.0.15.tar.gz",
"has_sig": false,
"md5_digest": "2f7b32cf46be1501f8e38699f959cb7c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 31313,
"upload_time": "2023-07-03T06:13:28",
"upload_time_iso_8601": "2023-07-03T06:13:28.911481Z",
"url": "https://files.pythonhosted.org/packages/9d/82/918b62875b18f659f62c7f6a438a3e64b50122aecca2e2a34fafeced7994/layerx-sdk-1.0.15.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-03 06:13:28",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "layerx-sdk"
}