1
0
mirror of https://github.com/QData/TextAttack.git synced 2021-10-13 00:05:06 +03:00

prelimary working checkpoint for file_logger and csv_logger

This commit is contained in:
Jin Yong Yoo
2020-05-15 07:22:33 -04:00
parent 685d0a0e56
commit 740756640f
9 changed files with 263 additions and 16 deletions

View File

@@ -1,5 +1,6 @@
import os
import sys
import copy
import terminaltables
from .logger import Logger
@@ -7,6 +8,7 @@ from .logger import Logger
class FileLogger(Logger):
def __init__(self, filename='', stdout=False):
self.stdout = stdout
self.filename = filename
if stdout:
self.fout = sys.stdout
elif isinstance(filename, str):
@@ -18,6 +20,21 @@ class FileLogger(Logger):
self.fout = filename
self.num_results = 0
def __getstate__(self):
# Temporarily save file handle b/c we can't copy it
tmp = self.fout
self.fout = None
state = copy.deepcopy(self.__dict__)
self.fout = tmp
return state
def __setstate__(self, state):
self.__dict__ = state
if self.stdout:
self.fout = sys.stdout
else:
self.fout = open(self.filename, 'a')
def log_attack_result(self, result):
self.num_results += 1
color_method = 'stdout' if self.stdout else 'file'