Initial
This commit is contained in:
commit
2a6ced1251
|
@ -0,0 +1,2 @@
|
|||
output/
|
||||
**/__pycache__/
|
|
@ -0,0 +1,784 @@
|
|||
{
|
||||
"scanId": "679be0aa-e1ff-4cea-a743-276ff44ea74b",
|
||||
"scanTime": 1729610672736,
|
||||
"containerBarcode": "#container-barcode",
|
||||
"scanTimeAnswer": null,
|
||||
"containerName": "96 SBS rack",
|
||||
"containerUid": "express96sbs",
|
||||
"demoImage": null,
|
||||
"containerGuid": "5a374e46-73c2-400e-9899-b9841f3941f5",
|
||||
"rawImage": null,
|
||||
"annotatedImage": null,
|
||||
"linearReaderImage": null,
|
||||
"tubeBarcode": [
|
||||
{
|
||||
"row": 1,
|
||||
"column": 1,
|
||||
"barcode": "3574186167",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 2,
|
||||
"barcode": "3574186175",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 3,
|
||||
"barcode": "3574186183",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 4,
|
||||
"barcode": "3574186191",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 5,
|
||||
"barcode": "3574186199",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 6,
|
||||
"barcode": "3574186207",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 7,
|
||||
"barcode": "3574186215",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 8,
|
||||
"barcode": "3574186223",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 9,
|
||||
"barcode": "3574186231",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 10,
|
||||
"barcode": "3574186239",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 11,
|
||||
"barcode": "3574186247",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 1,
|
||||
"column": 12,
|
||||
"barcode": "3574186255",
|
||||
"y": 437,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 1,
|
||||
"barcode": "3574186168",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 2,
|
||||
"barcode": "3574186176",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 3,
|
||||
"barcode": "3574186184",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 4,
|
||||
"barcode": "3574186192",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 5,
|
||||
"barcode": "3574186200",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 6,
|
||||
"barcode": "3574186208",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 7,
|
||||
"barcode": "3574186216",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 8,
|
||||
"barcode": "3574186224",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 9,
|
||||
"barcode": "3574186232",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 10,
|
||||
"barcode": "3574186240",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 11,
|
||||
"barcode": "3574186248",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 2,
|
||||
"column": 12,
|
||||
"barcode": "3574186256",
|
||||
"y": 664,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 1,
|
||||
"barcode": "3574186169",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 2,
|
||||
"barcode": "3574186177",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 3,
|
||||
"barcode": "3574186185",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 4,
|
||||
"barcode": "3574186193",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 5,
|
||||
"barcode": "3574186201",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 6,
|
||||
"barcode": "3574186209",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 7,
|
||||
"barcode": "3574186217",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 8,
|
||||
"barcode": "3574186225",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 9,
|
||||
"barcode": "3574186233",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 10,
|
||||
"barcode": "3574186241",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 11,
|
||||
"barcode": "3574186249",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 3,
|
||||
"column": 12,
|
||||
"barcode": "3574186257",
|
||||
"y": 892,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 1,
|
||||
"barcode": "3574186170",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 2,
|
||||
"barcode": "3574186178",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 3,
|
||||
"barcode": "3574186186",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 4,
|
||||
"barcode": "3574186194",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 5,
|
||||
"barcode": "3574186202",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 6,
|
||||
"barcode": "3574186210",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 7,
|
||||
"barcode": "3574186218",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 8,
|
||||
"barcode": "3574186226",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 9,
|
||||
"barcode": "3574186234",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 10,
|
||||
"barcode": "3574186242",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 11,
|
||||
"barcode": "3574186250",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 4,
|
||||
"column": 12,
|
||||
"barcode": "3574186258",
|
||||
"y": 1119,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 1,
|
||||
"barcode": "3574186171",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 2,
|
||||
"barcode": "3574186179",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 3,
|
||||
"barcode": "3574186187",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 4,
|
||||
"barcode": "3574186195",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 5,
|
||||
"barcode": "3574186203",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 6,
|
||||
"barcode": "3574186211",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 7,
|
||||
"barcode": "3574186219",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 8,
|
||||
"barcode": "3574186227",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 9,
|
||||
"barcode": "3574186235",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 10,
|
||||
"barcode": "3574186243",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 11,
|
||||
"barcode": "3574186251",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 5,
|
||||
"column": 12,
|
||||
"barcode": "3574186259",
|
||||
"y": 1347,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 1,
|
||||
"barcode": "3574186172",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 2,
|
||||
"barcode": "3574186180",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 3,
|
||||
"barcode": "3574186188",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 4,
|
||||
"barcode": "3574186196",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 5,
|
||||
"barcode": "3574186204",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 6,
|
||||
"barcode": "3574186212",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 7,
|
||||
"barcode": "3574186220",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 8,
|
||||
"barcode": "3574186228",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 9,
|
||||
"barcode": "3574186236",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 10,
|
||||
"barcode": "3574186244",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 11,
|
||||
"barcode": "3574186252",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 6,
|
||||
"column": 12,
|
||||
"barcode": "3574186260",
|
||||
"y": 1574,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 1,
|
||||
"barcode": "3574186173",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 2,
|
||||
"barcode": "3574186181",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 3,
|
||||
"barcode": "3574186189",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 4,
|
||||
"barcode": "3574186197",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 5,
|
||||
"barcode": "3574186205",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 6,
|
||||
"barcode": "3574186213",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 7,
|
||||
"barcode": "3574186221",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 8,
|
||||
"barcode": "3574186229",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 9,
|
||||
"barcode": "3574186237",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 10,
|
||||
"barcode": "3574186245",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 11,
|
||||
"barcode": "3574186253",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 7,
|
||||
"column": 12,
|
||||
"barcode": "3574186261",
|
||||
"y": 1802,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 1,
|
||||
"barcode": "3574186174",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2892
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 2,
|
||||
"barcode": "3574186182",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2665
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 3,
|
||||
"barcode": "3574186190",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2437
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 4,
|
||||
"barcode": "3574186198",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 2210
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 5,
|
||||
"barcode": "3574186206",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1982
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 6,
|
||||
"barcode": "3574186214",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1755
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 7,
|
||||
"barcode": "3574186222",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1527
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 8,
|
||||
"barcode": "3574186230",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1300
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 9,
|
||||
"barcode": "3574186238",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 1072
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 10,
|
||||
"barcode": "3574186246",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 845
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 11,
|
||||
"barcode": "3574186254",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 617
|
||||
},
|
||||
{
|
||||
"row": 8,
|
||||
"column": 12,
|
||||
"barcode": "3574186262",
|
||||
"y": 2029,
|
||||
"decodeStatus": "SUCCESS",
|
||||
"x": 390
|
||||
}
|
||||
],
|
||||
"orientationBarcode": []
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
import json
|
||||
from sys import argv
|
||||
from os import path, kill
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
@dataclass
|
||||
class Tube:
|
||||
barcode: str
|
||||
row: int
|
||||
col: int
|
||||
|
||||
|
||||
def main():
|
||||
input_file = argv[1]
|
||||
output_file = argv[2]
|
||||
|
||||
if not test_file(input_file):
|
||||
print("Input file does not exist")
|
||||
kill(1)
|
||||
if test_file(output_file):
|
||||
print("Output file already exists")
|
||||
kill(1)
|
||||
|
||||
tubes = read_and_parse_ziath_json(input_file)
|
||||
json_obj = tubes_to_tubes_json(tubes)
|
||||
|
||||
with open(output_file, 'w') as file:
|
||||
json.dump(json_obj, file)
|
||||
|
||||
|
||||
def test_file(p: str) -> bool:
|
||||
return path.exists(p) and path.isfile(p)
|
||||
|
||||
|
||||
def read_and_parse_ziath_json(p: str) -> [Tube]:
|
||||
with open(p, 'r') as file:
|
||||
j = json.load(file)
|
||||
|
||||
ziath_tubes = j["tubeBarcode"]
|
||||
return [Tube(tube["barcode"], tube["row"], tube["column"])
|
||||
for tube in ziath_tubes]
|
||||
|
||||
|
||||
def tubes_to_tubes_json(i: [Tube]) -> dict:
|
||||
items_list = []
|
||||
target_positions_list = []
|
||||
|
||||
for tube in i:
|
||||
items_list.append(tube.barcode)
|
||||
target_positions_list.append((tube.row - 1) * 12
|
||||
+ tube.col)
|
||||
|
||||
output_obj = {}
|
||||
output_obj["Items"] = [{"BarcodeValue": b}
|
||||
for b in items_list]
|
||||
output_obj["TargetPositions"] = [{"PositionIndex": p}
|
||||
for p in target_positions_list]
|
||||
|
||||
return output_obj
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue