Spaces:
Running
Running
import os | |
import glob | |
import json | |
from pathlib import Path | |
from collections import OrderedDict | |
def read_json(fname): | |
fname = Path(fname) | |
with fname.open('rt') as handle: | |
return json.load(handle, object_hook=OrderedDict) | |
def get_configs(base_path, filename_pattern="*.json"): | |
configs = [] | |
glob_pattern = os.path.join(base_path, filename_pattern) | |
file_paths = sorted(glob.glob(glob_pattern)) | |
for file_path in file_paths: | |
file_name = Path(file_path).stem | |
config = read_json(file_path) | |
config['name'] = file_name | |
configs.append(config) | |
return configs | |
def get_display_names(configs): | |
display_names = [] | |
for config in configs: | |
display_names.append(config['display_name']) | |
return display_names | |
def get_path_for_viz(base_path, dataset, sequence, model, viz): | |
dat_seq = "_".join([dataset["name"], sequence]) | |
video_path = os.path.join(base_path, model['model_id'], dat_seq, "videos", viz["name"] + ".mp4") | |
return video_path | |
def get_text_video(video_h, video_w, text, font, fontsize, fontcolor="black"): | |
pass | |
class Layout: | |
def __init__(self, num_rows, num_cols): | |
self.num_rows = num_rows | |
self.num_cols = num_cols | |
def get_layout_str(self): | |
layout_parts = [] | |
layout_y_parts = [] | |
for row_idx in range(self.num_rows): | |
layout_x_parts = [] | |
if row_idx == 0: | |
layout_y_parts.append("0") | |
else: | |
upper_vid_no = (row_idx - 1) * self.num_cols | |
if row_idx > 1: | |
layout_y_parts.append(layout_y_parts[-1] + "+h" + str(upper_vid_no)) | |
else: | |
layout_y_parts.append("h" + str(upper_vid_no)) | |
for col_idx in range(self.num_cols): | |
if col_idx == 0: | |
layout_x_parts.append("0") | |
else: | |
left_vid_no = row_idx * self.num_cols + col_idx - 1 | |
if col_idx > 1: | |
layout_x_parts.append(layout_x_parts[-1] + "+w" + str(left_vid_no)) | |
else: | |
layout_x_parts.append("w" + str(left_vid_no)) | |
layout_part = "_".join([layout_x_parts[-1], layout_y_parts[-1]]) | |
layout_parts.append(layout_part) | |
layout_string = "|".join(layout_parts) | |
return layout_string | |