<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def main(argv: Optional[Sequence[str]] = None) -> None: """Parse arguments and process the homework assignment."""

    parser = ArgumentParser(description="Convert Jupyter Notebook assignments to PDFs")
    parser.add_argument(
        "--hw",
        type=int,
        required=True,
        help="Homework number to convert",
        dest="hw_num",
    )
    parser.add_argument(
        "-p",
        "--problems",
        type=int,
        help="Problem numbers to convert",
        dest="problems",
        nargs="*",
    )
    parser.add_argument(
        "--by-hand",
        type=int,
        help="Problem numbers to be completed by hand",
        dest="by_hand",
        nargs="*",
    )
    args = parser.parse_args(argv)
    prefix = Path(f"homework/homework-{args.hw_num}")
    process(args.hw_num, args.problems, prefix=prefix, by_hand=args.by_hand)