Skip to content

Commit fed89f6

Browse files
committed
Fix #187 and #186
Logging is now enabled and filters refresh on no package.json
1 parent 8f45346 commit fed89f6

File tree

4 files changed

+89
-57
lines changed

4 files changed

+89
-57
lines changed

command_line.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def __init__(self, quiet=False):
7373
self.file_tree = FileTree()
7474

7575
def init(self):
76-
self.logger = logging.getLogger(__name__)
76+
self.logger = config.getLogger(__name__)
7777
self.update_nw_versions(None)
7878
self.setup_nw_versions()
7979

@@ -907,10 +907,12 @@ def make_output_dirs(self, write_json=True):
907907
['*'+output_blacklist+'*']),
908908
whitelist=whitelist_vals)
909909

910-
self.copy_files_to_project_folder()
911910

912911
if write_json:
913912
self.write_package_json()
913+
self.file_tree.refresh()
914+
915+
self.copy_files_to_project_folder()
914916

915917
for ex_setting in self.settings['export_settings'].values():
916918
self.process_export_setting(ex_setting, output_name)
@@ -1610,11 +1612,7 @@ def setup_logging(args, command_base):
16101612
)
16111613

16121614

1613-
config.logger = logging.getLogger('CMD Logger')
1614-
config.handler = lh.RotatingFileHandler(config.LOG_FILENAME,
1615-
maxBytes=100000,
1616-
backupCount=2)
1617-
config.logger.addHandler(config.handler)
1615+
config.logger = config.getLogger('CMD Logger')
16181616

16191617
def my_excepthook(type_, value, tback):
16201618
exc_format = traceback.format_exception(type_, value, tback)

config.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,34 @@ def is_installed():
9292

9393
LOG_FILENAME = utils.get_data_file_path(ERROR_LOG_FILE)
9494

95-
logger = logging.getLogger(__name__)
95+
if DEBUG:
96+
logging.basicConfig(
97+
filename=LOG_FILENAME,
98+
format=("%(levelname) -10s %(asctime)s %(module)s.py: "
99+
"%(lineno)s %(funcName)s - %(message)s"),
100+
level=logging.DEBUG
101+
)
102+
else:
103+
logging.basicConfig(
104+
filename=LOG_FILENAME,
105+
format=("%(levelname) -10s %(asctime)s %(module)s.py: "
106+
"%(lineno)s %(funcName)s - %(message)s"),
107+
level=logging.INFO
108+
)
109+
110+
111+
112+
def getLogger(name):
113+
logger = logging.getLogger(name)
114+
handler = lh.RotatingFileHandler(LOG_FILENAME,
115+
maxBytes=100000,
116+
backupCount=2)
117+
logger.addHandler(handler)
118+
return logger
119+
120+
121+
logger = getLogger(__name__)
122+
96123

97124
## Custom except hook to log all errors ----------------------
98125

main.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def __init__(self, width, height, app, parent=None):
146146

147147
self.setup_project_menu()
148148

149-
self.logger = logging.getLogger(__name__)
149+
self.logger = config.getLogger(__name__)
150150

151151
self.gui_app = app
152152
self.desktop_width = app.desktop().screenGeometry().width()
@@ -669,6 +669,9 @@ def done_making_files(self):
669669
otherwise run the user's custom script.
670670
"""
671671
self.ex_button.setEnabled(self.required_settings_filled())
672+
673+
self.tree_browser.refresh()
674+
672675
self.progress_text = 'Done Exporting.'
673676
self.delete_files()
674677

@@ -1202,6 +1205,7 @@ def create_export_settings(self):
12021205
def create_blacklist_layout(self, blacklist_layout):
12031206

12041207
self.tree_browser = TreeBrowser()
1208+
self.file_tree = self.tree_browser.file_tree
12051209
self.tree_browser.setContentsMargins(0, 0, 0, 0)
12061210

12071211
self.blacklist_text = QtGui.QPlainTextEdit()
@@ -1270,14 +1274,6 @@ def whitelist_changed(self, text, whitelist_setting):
12701274
new_val = text.toPlainText()
12711275
self.tree_browser.refresh(whitelist=re.split('\n?,?', new_val))
12721276

1273-
@property
1274-
def used_project_files(self):
1275-
return self.tree_browser.files
1276-
1277-
@property
1278-
def used_project_dirs(self):
1279-
return self.tree_browser.dirs
1280-
12811277
def create_output_name_pattern_line(self):
12821278
output_name_layout = QtGui.QHBoxLayout()
12831279

util_classes.py

Lines changed: 51 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def __init__(self, directory=None,
4242
def init(self, directory=None,
4343
whitelist=None, blacklist=None):
4444

45-
self.logger = logging.getLogger(__name__)
45+
self.logger = config.getLogger(__name__)
4646

4747
if directory:
4848
self.directory = directory + os.sep
@@ -52,15 +52,12 @@ def init(self, directory=None,
5252
self.refresh(whitelist, blacklist)
5353

5454
def clear(self):
55-
pass
55+
self.files = []
56+
self.dirs = []
5657

5758
def refresh(self, whitelist=None,
5859
blacklist=None):
59-
self.whitelist = whitelist or self.whitelist or []
60-
self.blacklist = blacklist or self.blacklist or []
61-
62-
self.files = []
63-
self.dirs = []
60+
self.set_filters(whitelist, blacklist)
6461

6562
self.clear()
6663

@@ -79,23 +76,35 @@ def walk(self, directory):
7976

8077
return self.walkcache[directory]
8178

82-
def determine_skip(self, path):
79+
def determine_skip(self, path, *args, **kwargs):
8380
skip = False
8481

8582
for blacklist in self.blacklist:
8683
match = fnmatch(path, blacklist)
8784
if match:
8885
skip = True
86+
self.on_blacklist_match(path, *args, **kwargs)
8987
break
9088

9189
for whitelist in self.whitelist:
9290
match = fnmatch(path, whitelist)
9391
if match:
9492
skip = False
93+
self.on_whitelist_match(path, *args, **kwargs)
9594
break
9695

9796
return skip
9897

98+
def set_filters(self, whitelist=None, blacklist=None):
99+
self.whitelist = whitelist or self.whitelist or []
100+
self.blacklist = blacklist or self.blacklist or []
101+
102+
def on_whitelist_match(self, path, *args, **kwargs):
103+
pass
104+
105+
def on_blacklist_match(self, path, *args, **kwargs):
106+
pass
107+
99108
def init_cache(self):
100109
if self.walkcache.get(self.directory) is None:
101110
self.walkcache[self.directory] = []
@@ -168,7 +177,7 @@ def generate_files(self):
168177
self.files.append(path)
169178

170179

171-
class TreeBrowser(QtGui.QWidget, FileTree):
180+
class TreeBrowser(QtGui.QWidget):
172181
def __init__(self, directory=None,
173182
whitelist=None, blacklist=None, parent=None):
174183
QtGui.QWidget.__init__(self, parent=parent)
@@ -184,10 +193,25 @@ def __init__(self, directory=None,
184193
layout.addWidget(self.root)
185194
self.setLayout(layout)
186195

187-
FileTree.__init__(self, directory, whitelist, blacklist)
196+
self.file_tree = FileTree(directory, whitelist, blacklist)
197+
self.init(directory, whitelist, blacklist)
188198

189199
def clear(self):
190200
self.root.clear()
201+
self.file_tree.clear()
202+
203+
def init(self, directory=None,
204+
whitelist=None, blacklist=None):
205+
206+
self.file_tree.init(directory, whitelist, blacklist)
207+
208+
self.refresh(whitelist, blacklist)
209+
210+
def refresh(self, whitelist=None,
211+
blacklist=None):
212+
self.file_tree.set_filters(whitelist, blacklist)
213+
self.clear()
214+
self.generate_files()
191215

192216
def fix_tree(self, path, parent):
193217
temp = parent
@@ -232,62 +256,49 @@ def fix_tree(self, path, parent):
232256
temp.addChild(child)
233257
temp = child
234258

235-
def determine_skip(self, path, parent):
236-
skip = False
237-
238-
for blacklist in self.blacklist:
239-
match = fnmatch(path, blacklist)
240-
if match:
241-
skip = True
242-
break
243-
244-
for whitelist in self.whitelist:
245-
match = fnmatch(path, whitelist)
246-
if match:
247-
skip = False
248-
if parent is None:
249-
self.fix_tree(path, parent)
250-
break
251-
252-
return skip
259+
def on_whitelist_match(self, path, parent=None):
260+
if parent is None:
261+
self.fix_tree(path, parent)
253262

254263
def generate_files(self):
255-
if self.directory is None:
264+
directory = self.file_tree.directory
265+
266+
if directory is None:
256267
return
257268

258269
self.parent_map = {'': self.root}
259270

260-
self.init_cache()
271+
self.file_tree.init_cache()
261272

262-
for root, dirs, files in self.walk(self.directory):
263-
self.add_to_cache(root, dirs, files)
273+
for root, dirs, files in self.file_tree.walk(directory):
274+
self.file_tree.add_to_cache(root, dirs, files)
264275

265-
proj_path = root.replace(self.directory, '')
276+
proj_path = root.replace(directory, '')
266277

267-
for directory in dirs:
278+
for dir in dirs:
268279
parent = self.parent_map.get(proj_path)
269280

270-
path = os.path.join(proj_path, directory)
281+
path = os.path.join(proj_path, dir)
271282

272-
if self.determine_skip(path, parent) or parent is None:
283+
if self.file_tree.determine_skip(path, parent=parent) or parent is None:
273284
continue
274285

275286
child = FileItem(parent, path)
276-
child.setText(0, directory)
287+
child.setText(0, dir)
277288
self.parent_map[path] = child
278-
self.dirs.append(path)
289+
self.file_tree.dirs.append(path)
279290

280291
for file in files:
281292
parent = self.parent_map.get(proj_path)
282293

283294
path = os.path.join(proj_path, file)
284295

285-
if self.determine_skip(path, parent) or parent is None:
296+
if self.file_tree.determine_skip(path, parent=parent) or parent is None:
286297
continue
287298

288299
child = FileItem(parent, path)
289300
child.setText(0, file)
290-
self.files.append(path)
301+
self.file_tree.files.append(path)
291302

292303
self.root.sortItems(0, Qt.AscendingOrder)
293304

0 commit comments

Comments
 (0)