# 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-beta",
"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/6e/52/ed40c73244c8f819fa7d13c5e37e7e14bd4fe43d9c48e33aa9cec34df08d/layerx-sdk-beta-1.0.16b7.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\n\n",
"bugtrack_url": null,
"license": "",
"summary": "LayerX Python SDK",
"version": "1.0.16b7",
"project_urls": null,
"split_keywords": [
"python",
"datalake",
"datasetsync",
"ai",
"annotation",
"layerx",
"layernext",
"machine learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "82336f15727305fc929d8ba7bdb406928acfd463fcf152ce980e887dabf89298",
"md5": "18c763ab9d24afe652928a5f5396c299",
"sha256": "618ed488a9e7d0646e9b02157fc7b02d70661e0bbd228c2fe9e5446fbebb0331"
},
"downloads": -1,
"filename": "layerx_sdk_beta-1.0.16b7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "18c763ab9d24afe652928a5f5396c299",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 40333,
"upload_time": "2023-07-12T05:24:57",
"upload_time_iso_8601": "2023-07-12T05:24:57.812272Z",
"url": "https://files.pythonhosted.org/packages/82/33/6f15727305fc929d8ba7bdb406928acfd463fcf152ce980e887dabf89298/layerx_sdk_beta-1.0.16b7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6e52ed40c73244c8f819fa7d13c5e37e7e14bd4fe43d9c48e33aa9cec34df08d",
"md5": "57234b6e04ee47a9b3090a3513227b20",
"sha256": "585fecd907ce2081c0c9d1112b8fa48bd7ec2dbdf19e86467c0db9bce2d860c8"
},
"downloads": -1,
"filename": "layerx-sdk-beta-1.0.16b7.tar.gz",
"has_sig": false,
"md5_digest": "57234b6e04ee47a9b3090a3513227b20",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 32624,
"upload_time": "2023-07-12T05:25:00",
"upload_time_iso_8601": "2023-07-12T05:25:00.584203Z",
"url": "https://files.pythonhosted.org/packages/6e/52/ed40c73244c8f819fa7d13c5e37e7e14bd4fe43d9c48e33aa9cec34df08d/layerx-sdk-beta-1.0.16b7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-12 05:25:00",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "layerx-sdk-beta"
}