Spelling utilities
This commit is contained in:
parent
2a6ced1251
commit
63925ec0ba
|
@ -0,0 +1,65 @@
|
|||
SrcWell,DestWell,XferVol
|
||||
A1,A1,2.5
|
||||
A2,A2,2.5
|
||||
B1,B1,2.5
|
||||
B2,B2,2.5
|
||||
C1,C1,2.5
|
||||
C2,C2,2.5
|
||||
D1,D1,2.5
|
||||
D2,D2,2.5
|
||||
E1,E1,2.5
|
||||
E2,E2,2.5
|
||||
F1,F1,2.5
|
||||
F2,F2,2.5
|
||||
G1,G1,2.5
|
||||
G2,G2,2.5
|
||||
H1,H1,2.5
|
||||
H2,H2,2.5
|
||||
A6,A1,2.5
|
||||
A7,A2,2.5
|
||||
B6,B1,2.5
|
||||
B7,B2,2.5
|
||||
C6,C1,2.5
|
||||
C7,C2,2.5
|
||||
D6,D1,2.5
|
||||
D7,D2,2.5
|
||||
E6,E1,2.5
|
||||
E7,E2,2.5
|
||||
F6,F1,2.5
|
||||
F7,F2,2.5
|
||||
G6,G1,2.5
|
||||
G7,G2,2.5
|
||||
H6,H1,2.5
|
||||
H7,H2,2.5
|
||||
A11,A1,2.5
|
||||
A12,A2,2.5
|
||||
B11,B1,2.5
|
||||
B12,B2,2.5
|
||||
C11,C1,2.5
|
||||
C12,C2,2.5
|
||||
D11,D1,2.5
|
||||
D12,D2,2.5
|
||||
E11,E1,2.5
|
||||
E12,E2,2.5
|
||||
F11,F1,2.5
|
||||
F12,F2,2.5
|
||||
G11,G1,2.5
|
||||
G12,G2,2.5
|
||||
H11,H1,2.5
|
||||
H12,H2,2.5
|
||||
G3,A1,2.5
|
||||
G4,A2,2.5
|
||||
G5,A3,2.5
|
||||
G6,A4,2.5
|
||||
G7,A5,2.5
|
||||
G8,A6,2.5
|
||||
G9,A7,2.5
|
||||
G10,A8,2.5
|
||||
H3,B1,2.5
|
||||
H4,B2,2.5
|
||||
H5,B3,2.5
|
||||
H6,B4,2.5
|
||||
H7,B5,2.5
|
||||
H8,B6,2.5
|
||||
H9,B7,2.5
|
||||
H10,B8,2.5
|
|
|
@ -0,0 +1,57 @@
|
|||
SrcWell,DestWell,XferVol
|
||||
A1,A1,2.5
|
||||
A2,A2,2.5
|
||||
A3,A3,2.5
|
||||
A4,A4,2.5
|
||||
A5,A5,2.5
|
||||
A6,A6,2.5
|
||||
A7,A7,2.5
|
||||
A8,A8,2.5
|
||||
A9,A9,2.5
|
||||
A10,A10,2.5
|
||||
A11,A11,2.5
|
||||
A12,A12,2.5
|
||||
B1,B1,2.5
|
||||
B2,B2,2.5
|
||||
B3,B3,2.5
|
||||
B4,B4,2.5
|
||||
B5,B5,2.5
|
||||
B6,B6,2.5
|
||||
B7,B7,2.5
|
||||
B8,B8,2.5
|
||||
B9,B9,2.5
|
||||
B10,B10,2.5
|
||||
B11,B11,2.5
|
||||
B12,B12,2.5
|
||||
G1,A1,2.5
|
||||
G2,A2,2.5
|
||||
G3,A3,2.5
|
||||
G4,A4,2.5
|
||||
G5,A5,2.5
|
||||
G6,A6,2.5
|
||||
G7,A7,2.5
|
||||
G8,A8,2.5
|
||||
G9,A9,2.5
|
||||
G10,A10,2.5
|
||||
G11,A11,2.5
|
||||
G12,A12,2.5
|
||||
H1,B1,2.5
|
||||
H2,B2,2.5
|
||||
H3,B3,2.5
|
||||
H4,B4,2.5
|
||||
H5,B5,2.5
|
||||
H6,B6,2.5
|
||||
H7,B7,2.5
|
||||
H8,B8,2.5
|
||||
H9,B9,2.5
|
||||
H10,B10,2.5
|
||||
H11,B11,2.5
|
||||
H12,B12,2.5
|
||||
C6,A1,2.5
|
||||
C7,A2,2.5
|
||||
D6,B1,2.5
|
||||
D7,B2,2.5
|
||||
E6,C1,2.5
|
||||
E7,C2,2.5
|
||||
F6,D1,2.5
|
||||
F7,D2,2.5
|
|
|
@ -0,0 +1,65 @@
|
|||
SrcWell,DestWell,XferVol
|
||||
A1,A1,2.5
|
||||
A2,A2,2.5
|
||||
B1,B1,2.5
|
||||
B2,B2,2.5
|
||||
C1,C1,2.5
|
||||
C2,C2,2.5
|
||||
D1,D1,2.5
|
||||
D2,D2,2.5
|
||||
E1,E1,2.5
|
||||
E2,E2,2.5
|
||||
F1,F1,2.5
|
||||
F2,F2,2.5
|
||||
G1,G1,2.5
|
||||
G2,G2,2.5
|
||||
H1,H1,2.5
|
||||
H2,H2,2.5
|
||||
A3,A1,2.5
|
||||
A4,A2,2.5
|
||||
A5,A3,2.5
|
||||
A6,A4,2.5
|
||||
A7,A5,2.5
|
||||
A8,A6,2.5
|
||||
A9,A7,2.5
|
||||
A10,A8,2.5
|
||||
A11,A9,2.5
|
||||
A12,A10,2.5
|
||||
B3,B1,2.5
|
||||
B4,B2,2.5
|
||||
B5,B3,2.5
|
||||
B6,B4,2.5
|
||||
B7,B5,2.5
|
||||
B8,B6,2.5
|
||||
B9,B7,2.5
|
||||
B10,B8,2.5
|
||||
B11,B9,2.5
|
||||
B12,B10,2.5
|
||||
C11,A1,2.5
|
||||
C12,A2,2.5
|
||||
D11,B1,2.5
|
||||
D12,B2,2.5
|
||||
E11,C1,2.5
|
||||
E12,C2,2.5
|
||||
F11,D1,2.5
|
||||
F12,D2,2.5
|
||||
G11,E1,2.5
|
||||
G12,E2,2.5
|
||||
H11,F1,2.5
|
||||
H12,F2,2.5
|
||||
G3,A1,2.5
|
||||
G4,A2,2.5
|
||||
G5,A3,2.5
|
||||
G6,A4,2.5
|
||||
G7,A5,2.5
|
||||
G8,A6,2.5
|
||||
G9,A7,2.5
|
||||
G10,A8,2.5
|
||||
H3,B1,2.5
|
||||
H4,B2,2.5
|
||||
H5,B3,2.5
|
||||
H6,B4,2.5
|
||||
H7,B5,2.5
|
||||
H8,B6,2.5
|
||||
H9,B7,2.5
|
||||
H10,B8,2.5
|
|
|
@ -0,0 +1,61 @@
|
|||
SrcWell,DestWell,XferVol
|
||||
G1,A1,2.5
|
||||
G2,A2,2.5
|
||||
G3,A3,2.5
|
||||
G4,A4,2.5
|
||||
G5,A5,2.5
|
||||
G6,A6,2.5
|
||||
G7,A7,2.5
|
||||
G8,A8,2.5
|
||||
G9,A9,2.5
|
||||
G10,A10,2.5
|
||||
G11,A11,2.5
|
||||
G12,A12,2.5
|
||||
H1,B1,2.5
|
||||
H2,B2,2.5
|
||||
H3,B3,2.5
|
||||
H4,B4,2.5
|
||||
H5,B5,2.5
|
||||
H6,B6,2.5
|
||||
H7,B7,2.5
|
||||
H8,B8,2.5
|
||||
H9,B9,2.5
|
||||
H10,B10,2.5
|
||||
H11,B11,2.5
|
||||
H12,B12,2.5
|
||||
A1,A1,2.5
|
||||
A2,A2,2.5
|
||||
B1,B1,2.5
|
||||
B2,B2,2.5
|
||||
C1,C1,2.5
|
||||
C2,C2,2.5
|
||||
D1,D1,2.5
|
||||
D2,D2,2.5
|
||||
E1,E1,2.5
|
||||
E2,E2,2.5
|
||||
F1,F1,2.5
|
||||
F2,F2,2.5
|
||||
A3,A1,2.5
|
||||
A4,A2,2.5
|
||||
B3,B1,2.5
|
||||
B4,B2,2.5
|
||||
C5,A1,2.5
|
||||
C6,A2,2.5
|
||||
D5,B1,2.5
|
||||
D6,B2,2.5
|
||||
E5,C1,2.5
|
||||
E6,C2,2.5
|
||||
F5,D1,2.5
|
||||
F6,D2,2.5
|
||||
B7,A1,2.5
|
||||
B8,A2,2.5
|
||||
B9,A3,2.5
|
||||
B10,A4,2.5
|
||||
B11,A5,2.5
|
||||
B12,A6,2.5
|
||||
C7,B1,2.5
|
||||
C8,B2,2.5
|
||||
C9,B3,2.5
|
||||
C10,B4,2.5
|
||||
C11,B5,2.5
|
||||
C12,B6,2.5
|
|
|
@ -0,0 +1,61 @@
|
|||
SrcWell,DestWell,XferVol
|
||||
A1,A1,2.5
|
||||
A2,A2,2.5
|
||||
B1,B1,2.5
|
||||
B2,B2,2.5
|
||||
C1,C1,2.5
|
||||
C2,C2,2.5
|
||||
D1,D1,2.5
|
||||
D2,D2,2.5
|
||||
E1,E1,2.5
|
||||
E2,E2,2.5
|
||||
F1,F1,2.5
|
||||
F2,F2,2.5
|
||||
G1,G1,2.5
|
||||
G2,G2,2.5
|
||||
H1,H1,2.5
|
||||
H2,H2,2.5
|
||||
A6,A1,2.5
|
||||
A7,A2,2.5
|
||||
B6,B1,2.5
|
||||
B7,B2,2.5
|
||||
C6,C1,2.5
|
||||
C7,C2,2.5
|
||||
D6,D1,2.5
|
||||
D7,D2,2.5
|
||||
E6,E1,2.5
|
||||
E7,E2,2.5
|
||||
F6,F1,2.5
|
||||
F7,F2,2.5
|
||||
G6,G1,2.5
|
||||
G7,G2,2.5
|
||||
H6,H1,2.5
|
||||
H7,H2,2.5
|
||||
A11,A1,2.5
|
||||
A12,A2,2.5
|
||||
B11,B1,2.5
|
||||
B12,B2,2.5
|
||||
C11,C1,2.5
|
||||
C12,C2,2.5
|
||||
D11,D1,2.5
|
||||
D12,D2,2.5
|
||||
E11,E1,2.5
|
||||
E12,E2,2.5
|
||||
F11,F1,2.5
|
||||
F12,F2,2.5
|
||||
G11,G1,2.5
|
||||
G12,G2,2.5
|
||||
H11,H1,2.5
|
||||
H12,H2,2.5
|
||||
G3,A1,2.5
|
||||
G4,A2,2.5
|
||||
G5,A3,2.5
|
||||
H3,B1,2.5
|
||||
H4,B2,2.5
|
||||
H5,B3,2.5
|
||||
A8,A1,2.5
|
||||
A9,A2,2.5
|
||||
A10,A3,2.5
|
||||
B8,B1,2.5
|
||||
B9,B2,2.5
|
||||
B10,B3,2.5
|
|
|
@ -0,0 +1,65 @@
|
|||
import json
|
||||
from sys import argv
|
||||
from os import path, kill
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Location:
|
||||
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)
|
||||
|
||||
locations = read_input_csv_to_wells(input_file)
|
||||
json_obj = tubes_to_tubes_json(locations)
|
||||
|
||||
with open(output_file, 'w') as file:
|
||||
json.dump(json_obj, file)
|
||||
|
||||
|
||||
def read_input_csv_to_wells(p: str) -> [Location]:
|
||||
with open(p, 'r') as file:
|
||||
lines = file.readlines()
|
||||
# Assume 96w format only
|
||||
def get_first_col(line): return line.split(',')[0]
|
||||
def get_row(x): return ord(x.upper()) - 64
|
||||
|
||||
def get_row_col(line: str) -> Location:
|
||||
col = get_first_col(line)[1:]
|
||||
row = get_row(get_first_col(line)[0])
|
||||
return Location(row, int(col))
|
||||
|
||||
return list(set([get_row_col(line) for line in lines[1:]]))
|
||||
|
||||
|
||||
def tubes_to_tubes_json(i: [Location]) -> dict:
|
||||
target_positions_list = []
|
||||
|
||||
for tube in i:
|
||||
target_positions_list.append((tube.row - 1) * 12
|
||||
+ tube.col)
|
||||
|
||||
output_obj = {}
|
||||
output_obj["TargetPositions"] = [{"PositionIndex": p}
|
||||
for p in target_positions_list]
|
||||
|
||||
return output_obj
|
||||
|
||||
|
||||
def test_file(p: str) -> bool:
|
||||
return path.exists(p) and path.isfile(p)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue