(
parser_or_args: Union[argparse.ArgumentParser, argparse.Namespace],
)
| 651 | |
| 652 | |
| 653 | def validate_and_transform_args( |
| 654 | parser_or_args: Union[argparse.ArgumentParser, argparse.Namespace], |
| 655 | ) -> Optional[argparse.Namespace]: |
| 656 | if isinstance(parser_or_args, argparse.Namespace): |
| 657 | parser = None |
| 658 | args = parser_or_args |
| 659 | else: |
| 660 | parser = parser_or_args |
| 661 | args = parser.parse_args() |
| 662 | try: |
| 663 | validate_args(args) |
| 664 | except ValueError as e: |
| 665 | logger.error(e) |
| 666 | if parser is not None: |
| 667 | parser.print_usage() |
| 668 | return None |
| 669 | if args.gui_mode and args.srtout is None: |
| 670 | args.srtout = "{}.synced.srt".format(os.path.splitext(args.srtin[0])[0]) |
| 671 | try: |
| 672 | validate_file_permissions(args) |
| 673 | except ValueError as e: |
| 674 | logger.error(e) |
| 675 | return None |
| 676 | ref_format = _ref_format(args.reference) |
| 677 | if args.merge_with_reference and ref_format not in SUBTITLE_EXTENSIONS: |
| 678 | logger.error( |
| 679 | "merging synced output with reference only valid " |
| 680 | "when reference composed of subtitles" |
| 681 | ) |
| 682 | return None |
| 683 | return args |
| 684 | |
| 685 | |
| 686 | def run( |
no test coverage detected