Spaces:
Running
Running
import argparse | |
import subprocess | |
import os | |
report = '''\n⚠️⚠️⚠️\n | |
Try installing latest version of the library by running the following command: | |
pip install -u medvqa | |
If it still cannot solve the problem, don't hesitate to add an issue at https://github.com/SushantGautam/MedVQA/issues with the log above! We will try to solve the problem ASAP. Can also interact with us on Discord: https://discord.gg/22V9huwc3R.\n | |
⚠️⚠️⚠️''' | |
def validate(args, unk_args, submit=False, challenge_evaluate=False): | |
# Dynamically find the base directory of the MedVQA library | |
base_dir = os.path.dirname(os.path.abspath(__file__)) | |
# Check if competition directory exists | |
competition_dir = os.path.join(base_dir, 'competitions', args.competition) | |
if not os.path.isdir(competition_dir): | |
raise FileNotFoundError( | |
f"Competition '{args.competition}' does not exist! Need to update library?"+report) | |
# Check if task file exists | |
task_file = os.path.join(competition_dir, f'task_{args.task}.py') | |
if not os.path.isfile(task_file): | |
raise FileNotFoundError( | |
f"Task '{args.task}' does not exist! Need to update library?"+report) | |
if submit: | |
subprocess.run(['python', task_file] + unk_args, | |
env={**os.environ, "_MEDVQA_SUBMIT_FLAG_": "TRUE"}) | |
elif challenge_evaluate: | |
subprocess.run(['python', task_file] + unk_args, | |
env={**os.environ, "_MEDVQA_CHALLENGE_EVALUATE_FLAG_": "TRUE"}) | |
else: | |
subprocess.run( | |
['python', task_file] + unk_args) | |
def main(): | |
parser = argparse.ArgumentParser(description='MedVQA CLI') | |
subparsers = parser.add_subparsers( | |
dest='command', required=True, help="Either 'validate', 'validate_and_submit', or 'challenge_evaluate'") | |
for cmd in ['validate', 'validate_and_submit', 'challenge_evaluate']: | |
subparser = subparsers.add_parser(cmd) | |
subparser.add_argument( | |
'--competition', required=True, help='Name of the competition (e.g., gi-2025)') | |
subparser.add_argument('--task', required=True, | |
help='Task number (1 or 2)') | |
args, _unk_args = parser.parse_known_args() | |
if args.command == 'validate': | |
validate(args, _unk_args) | |
elif args.command == 'validate_and_submit': | |
validate(args, _unk_args, submit=True) | |
elif args.command == 'challenge_evaluate': | |
validate(args, _unk_args, challenge_evaluate=True) | |
if __name__ == "__main__": | |
main() | |