@@ -66,7 +66,12 @@ def parse_flags(supported_sites):
6666 dest = 'default_contest' ,
6767 help = 'Name of default contest to be used when -c flag is not specified' )
6868
69- parser .set_defaults (force = False )
69+ parser .add_argument ('--clear-cache' ,
70+ dest = 'clear_cache' ,
71+ action = 'store_true' ,
72+ help = 'Clear cached test cases for a given site. Takes default site if -s flag is omitted' )
73+
74+ parser .set_defaults (force = False , clear_cache = False )
7075
7176 args = parser .parse_args ()
7277
@@ -94,6 +99,7 @@ def parse_flags(supported_sites):
9499
95100 flags ['problem' ] = args .problem
96101 flags ['force' ] = args .force
102+ flags ['clear_cache' ] = args .clear_cache
97103 flags ['source' ] = args .source_file
98104 flags ['default_site' ] = args .default_site
99105 flags ['default_contest' ] = args .default_contest
@@ -138,6 +144,24 @@ def check_cache(site, contest, problem):
138144 contest , problem ))
139145 return False
140146
147+ @staticmethod
148+ def clear_cache (site ):
149+ """
150+ Method to clear cached test cases
151+ """
152+
153+ confirm = raw_input (
154+ 'Remove entire cache for site %s? (y/N) : ' % (site ))
155+ if confirm == 'y' :
156+ from shutil import rmtree
157+ try :
158+ rmtree (os .path .join (Utilities .cache_dir , site ))
159+ except :
160+ print 'Some error occured. Try again.'
161+ return
162+ os .makedirs (os .path .join (Utilities .cache_dir , site ))
163+ print 'Done.'
164+
141165 @staticmethod
142166 def store_files (site , contest , problem , inputs , outputs ):
143167 """
0 commit comments