2
2
3
3
# standard library
4
4
import argparse
5
+ import glob
5
6
import os
6
7
import time
7
8
@@ -22,19 +23,21 @@ def get_argument_parser():
22
23
help = "filename for log output (defaults to stdout)" )
23
24
return parser
24
25
25
- def handle_file (deletion_file , database ):
26
+ def handle_file (deletion_file , database , logger ):
26
27
logger .info ("Deleting from csv file" , filename = deletion_file )
27
28
rows = []
28
29
with open (deletion_file ) as f :
29
30
for line in f :
30
- rows .append (line .strip ().split ("," ))
31
+ fields = line .strip ().split ("," )
32
+ if len (fields ) < 9 : continue
33
+ rows .append (fields + ["day" ])
31
34
rows = rows [1 :]
32
35
try :
33
36
n = database .delete_batch (rows )
34
37
logger .info ("Deleted database rows" , row_count = n )
35
38
return n
36
39
except Exception as e :
37
- logger .exception ('Exception while deleting rows: ' , e )
40
+ logger .exception ('Exception while deleting rows' , exception = e )
38
41
database .rollback ()
39
42
return 0
40
43
@@ -49,7 +52,11 @@ def main(args):
49
52
50
53
try :
51
54
for deletion_file in sorted (glob .glob (os .path .join (args .deletion_dir , '*.csv' ))):
52
- all_n += handle_file (deletion_file )
55
+ n = handle_file (deletion_file , database , logger )
56
+ if n is not None :
57
+ all_n += n
58
+ else :
59
+ all_n = "rowcount unsupported"
53
60
finally :
54
61
database .disconnect (True )
55
62
0 commit comments