Skip to content

Commit a4596a0

Browse files
author
Nalini Ganapati
committed
Additional checks for genomicsdb_query when output' parent directory does not exist
1 parent 8bcb9cf commit a4596a0

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

genomicsdb/scripts/genomicsdb_query.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -665,17 +665,23 @@ def process(config):
665665
logging.info(f"Processed {msg}")
666666
return 0
667667

668+
def check_output(output):
669+
parent_dir = os.path.dirname(output)
670+
if not os.path.isdir(parent_dir):
671+
if os.path.isfile(os.path.dirname(output)):
672+
raise RuntimeError(f"Cannot proceed as output's parent directory({parent_dir}) is a file")
673+
else:
674+
raise RuntimeError(f"Cannot proceed as output's parent directory({parent_dir}) does not exist. Create dir({parent_dir}) before restarting query")
675+
return output
668676

669677
def main():
670678
workspace, callset_file, vidmap_file, partitions, contigs_map, intervals, row_tuples, attributes, args = setup()
671679

672680
if row_tuples is not None and len(row_tuples) == 0:
673681
return
674682

675-
print(f"Starting genomicsdb_query for workspace({workspace}) and intervals({intervals})")
676-
677683
output_type = args.output_type
678-
output = args.output
684+
output = check_output(args.output)
679685
json_type = None
680686
if output_type == "json":
681687
json_type = parse_args_for_json_type(args.json_output_type)
@@ -686,6 +692,8 @@ def main():
686692
max_arrow_bytes = parse_args_for_max_bytes(args.max_arrow_byte_size)
687693
print(f"Using {args.max_arrow_byte_size} number of bytes as hint for writing out parquet files")
688694

695+
print(f"Starting genomicsdb_query for workspace({workspace}) and intervals({intervals})")
696+
689697
export_config = GenomicsDBExportConfig(
690698
workspace, vidmap_file, callset_file, attributes, args.filter, args.bypass_intersecting_intervals_phase
691699
)

test/scripts/test.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@ run_command "genomicsdb_query -w $WORKSPACE -I $TEMP_DIR/contigs.list -S $TEMP_D
183183
run_command "genomicsdb_query -w $WORKSPACE $INTERVAL_ARGS -S $TEMP_DIR/samples.list -o $OUTPUT"
184184
run_command "genomicsdb_query -w $WORKSPACE $INTERVAL_ARGS -S $TEMP_DIR/samples.list -f $FILTER -o $OUTPUT"
185185
run_command "genomicsdb_query -w $WORKSPACE $INTERVAL_ARGS -a $FIELDS -o $OUTPUT"
186-
run_command "genomicsdb_query -w $WORKSPACE $INTERVAL_ARGS -a NON_EXISTENT_FIELD,$FIELDS -o $OUTPUT" 1
186+
run_command "genomicsdb_query -w $WORKSPACE $INTERVAL_ARGS -a NON_EXISTENT_FIELD,$FIELDS -o $OUTPUT" 1
187+
run_command "genomicsdb_query -w $WORKSPACE $INTERVAL_ARGS -o NON_EXISTENT_DIR/output" 1
187188

188189
rm -f loader.json callset.json vidmap.json
189190
run_command "genomicsdb_cache -w $WORKSPACE $INTERVAL_ARGS"

0 commit comments

Comments
 (0)