77import argparse
88import asyncio
99import logging
10+ from pathlib import Path
1011from typing import Any , Coroutine , List
1112
1213# https://github.com/kerrickstaley/genanki
@@ -41,6 +42,12 @@ def parse_args() -> argparse.Namespace:
4142 help = "Get at most this many problems (decrease if leetcode API times out)" ,
4243 default = 1000 ,
4344 )
45+ parser .add_argument (
46+ "--output-file" ,
47+ type = str ,
48+ help = "Output filename" ,
49+ default = OUTPUT_FILE ,
50+ )
4451
4552 args = parser .parse_args ()
4653
@@ -96,7 +103,7 @@ async def generate_anki_note(
96103 )
97104
98105
99- async def generate (start : int , stop : int , page_size : int ) -> None :
106+ async def generate (start : int , stop : int , page_size : int , output_file : str ) -> None :
100107 """
101108 Generate an Anki deck
102109 """
@@ -161,7 +168,7 @@ async def generate(start: int, stop: int, page_size: int) -> None:
161168 },
162169 ],
163170 )
164- leetcode_deck = genanki .Deck (LEETCODE_ANKI_DECK_ID , "leetcode" )
171+ leetcode_deck = genanki .Deck (LEETCODE_ANKI_DECK_ID , Path ( output_file ). stem )
165172
166173 leetcode_data = leetcode_anki .helpers .leetcode .LeetcodeData (start , stop , page_size )
167174
@@ -182,7 +189,7 @@ async def generate(start: int, stop: int, page_size: int) -> None:
182189 for leetcode_note in tqdm (note_generators , unit = "flashcard" ):
183190 leetcode_deck .add_note (await leetcode_note )
184191
185- genanki .Package (leetcode_deck ).write_to_file (OUTPUT_FILE )
192+ genanki .Package (leetcode_deck ).write_to_file (output_file )
186193
187194
188195async def main () -> None :
@@ -191,8 +198,8 @@ async def main() -> None:
191198 """
192199 args = parse_args ()
193200
194- start , stop , page_size = args .start , args .stop , args .page_size
195- await generate (start , stop , page_size )
201+ start , stop , page_size , output_file = args .start , args .stop , args .page_size , args . output_file
202+ await generate (start , stop , page_size , output_file )
196203
197204
198205if __name__ == "__main__" :
0 commit comments