7
7
import argparse
8
8
import asyncio
9
9
import logging
10
+ from pathlib import Path
10
11
from typing import Any , Coroutine , List
11
12
12
13
# https://github.com/kerrickstaley/genanki
@@ -41,6 +42,12 @@ def parse_args() -> argparse.Namespace:
41
42
help = "Get at most this many problems (decrease if leetcode API times out)" ,
42
43
default = 1000 ,
43
44
)
45
+ parser .add_argument (
46
+ "--output-file" ,
47
+ type = str ,
48
+ help = "Output filename" ,
49
+ default = OUTPUT_FILE ,
50
+ )
44
51
45
52
args = parser .parse_args ()
46
53
@@ -96,7 +103,7 @@ async def generate_anki_note(
96
103
)
97
104
98
105
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 :
100
107
"""
101
108
Generate an Anki deck
102
109
"""
@@ -161,7 +168,7 @@ async def generate(start: int, stop: int, page_size: int) -> None:
161
168
},
162
169
],
163
170
)
164
- leetcode_deck = genanki .Deck (LEETCODE_ANKI_DECK_ID , "leetcode" )
171
+ leetcode_deck = genanki .Deck (LEETCODE_ANKI_DECK_ID , Path ( output_file ). stem )
165
172
166
173
leetcode_data = leetcode_anki .helpers .leetcode .LeetcodeData (start , stop , page_size )
167
174
@@ -182,7 +189,7 @@ async def generate(start: int, stop: int, page_size: int) -> None:
182
189
for leetcode_note in tqdm (note_generators , unit = "flashcard" ):
183
190
leetcode_deck .add_note (await leetcode_note )
184
191
185
- genanki .Package (leetcode_deck ).write_to_file (OUTPUT_FILE )
192
+ genanki .Package (leetcode_deck ).write_to_file (output_file )
186
193
187
194
188
195
async def main () -> None :
@@ -191,8 +198,8 @@ async def main() -> None:
191
198
"""
192
199
args = parse_args ()
193
200
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 )
196
203
197
204
198
205
if __name__ == "__main__" :
0 commit comments