Skip to content

Commit

Permalink
Merge pull request #211 from JensWendt/develop
Browse files Browse the repository at this point in the history
Solution for delimiter reading issue (#210) utilizing dynamic checkpoints
  • Loading branch information
will-moore authored Sep 29, 2023
2 parents 824d8a2 + 8738ad1 commit ce9f5c9
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions omero/annotation_scripts/KeyVal_from_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import sys
import csv
import copy
from math import floor

from omero.util.populate_roi import DownloadingOriginalFileProvider

Expand Down Expand Up @@ -157,29 +158,34 @@ def keyval_from_csv(conn, script_params):
temp_file = provider.get_original_file_data(original_file)
# Needs omero-py 5.9.1 or later
temp_name = temp_file.name
file_length = original_file.size.val
with open(temp_name, 'rt', encoding='utf-8-sig') as file_handle:
try:
delimiter = csv.Sniffer().sniff(
file_handle.read(500), ",;\t").delimiter
file_handle.read(floor(file_length/4)), ",;\t").delimiter
print("Using delimiter: ", delimiter,
" after reading 500 characters")
f" after reading {floor(file_length/4)} characters")
except Exception:
file_handle.seek(0)
try:
delimiter = csv.Sniffer().sniff(
file_handle.read(1000), ",;\t").delimiter
file_handle.read(floor(file_length/2)),
",;\t").delimiter
print("Using delimiter: ", delimiter,
" after reading 1000 characters")
f"after reading {floor(file_length/2)} characters")
except Exception:
file_handle.seek(0)
try:
delimiter = csv.Sniffer().sniff(
file_handle.read(2000), ";,\t").delimiter
file_handle.read(floor(file_length*0.75)),
",;\t").delimiter
print("Using delimiter: ", delimiter,
" after reading 2000 characters")
f" after reading {floor(file_length*0.75)}"
" characters")
except Exception:
print("Failed to sniff delimiter, using ','")
delimiter = ","

# reset to start and read whole file...
file_handle.seek(0)
data = list(csv.reader(file_handle, delimiter=delimiter))
Expand Down

0 comments on commit ce9f5c9

Please sign in to comment.