# layernext-python-sdk
LayerNext Python API Client
Sync (upload/download) with LayerNext stacks via APIs from your local machine
You can
- Upload model runs data
## Installation
`$ pip install layernext-sdk`
## Usage
```python
import layernext
api_key = 'xxxxxxxxxx'
secret = 'xxxxxxxxxxx'
url = 'https://api.xxxx.layernext.ai'
client = layernext.LayerNextClient(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": "layernext-enterprise-beta",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,datalake,datasetsync,ai,annotation,layernext,layernext,machine learning",
"author": "LayerNext",
"author_email": "<support@layernext.ai>",
"download_url": "https://files.pythonhosted.org/packages/fc/36/06e60149493002e72623728c6e81d4d962c0801107a24d34e78f7e71d970/layernext-enterprise-beta-1.1.0b1.tar.gz",
"platform": null,
"description": "\n# layernext-python-sdk\n\nLayerNext Python API Client\nSync (upload/download) with LayerNext stacks via APIs from your local machine\n\nYou can\n- Upload model runs data\n\n\n## Installation\n\n`$ pip install layernext-sdk`\n\n## Usage\n\n```python\nimport layernext \n \napi_key = 'xxxxxxxxxx' \nsecret = 'xxxxxxxxxxx'\nurl = 'https://api.xxxx.layernext.ai'\n \nclient = layernext.LayerNextClient(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": "LayerNext Python SDK",
"version": "1.1.0b1",
"project_urls": null,
"split_keywords": [
"python",
"datalake",
"datasetsync",
"ai",
"annotation",
"layernext",
"layernext",
"machine learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "14ea1c9876d7d3d5e03f8a55a1c3b73caed4e3e43af77d4db987eb5b7c3e3da9",
"md5": "68de34ae0d616b6b2093371ed4166093",
"sha256": "521d8eef7272f3b12a8b79aad75230062f8fd8da548eff9e33470a565e482dc6"
},
"downloads": -1,
"filename": "layernext_enterprise_beta-1.1.0b1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "68de34ae0d616b6b2093371ed4166093",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 42617,
"upload_time": "2023-08-03T10:48:39",
"upload_time_iso_8601": "2023-08-03T10:48:39.865872Z",
"url": "https://files.pythonhosted.org/packages/14/ea/1c9876d7d3d5e03f8a55a1c3b73caed4e3e43af77d4db987eb5b7c3e3da9/layernext_enterprise_beta-1.1.0b1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fc3606e60149493002e72623728c6e81d4d962c0801107a24d34e78f7e71d970",
"md5": "a8f284dff3d91684016ff46b2b79082a",
"sha256": "f3cb51ceba0a99614c57aee7aa5502b21f6fdbed936dcfa9eedc53a5a0b4599a"
},
"downloads": -1,
"filename": "layernext-enterprise-beta-1.1.0b1.tar.gz",
"has_sig": false,
"md5_digest": "a8f284dff3d91684016ff46b2b79082a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 34341,
"upload_time": "2023-08-03T10:48:41",
"upload_time_iso_8601": "2023-08-03T10:48:41.676180Z",
"url": "https://files.pythonhosted.org/packages/fc/36/06e60149493002e72623728c6e81d4d962c0801107a24d34e78f7e71d970/layernext-enterprise-beta-1.1.0b1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-03 10:48:41",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "layernext-enterprise-beta"
}