Skip to content

Commit 2c506a8

Browse files
authored
Replace prints with logging (#191)
1 parent d3bfbc2 commit 2c506a8

File tree

9 files changed

+69
-45
lines changed

9 files changed

+69
-45
lines changed

main.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
# add shared libraries to LD_LIBRARY_PATH
1414
os.environ["LD_LIBRARY_PATH"] = shared_libs + ":" + prev_ld_path
15-
print("LD_LIBRARY_PATH:", os.environ["LD_LIBRARY_PATH"])
15+
logging.debug("LD_LIBRARY_PATH: %s", os.environ["LD_LIBRARY_PATH"])
1616

1717

1818
import logging
@@ -36,18 +36,19 @@
3636
from src.gui_utils import read_plane
3737

3838
logging.basicConfig(
39-
filename="interface.log",
40-
filemode="w+",
4139
level=logging.INFO,
4240
format="%(asctime)s %(message)s",
41+
handlers=[
42+
logging.FileHandler("interface.log", mode="w+"),
43+
logging.StreamHandler(sys.stdout),
44+
],
4345
)
4446

4547

4648
def excepthook(exc_type, exc_value, exc_tb):
4749
tb = "".join(traceback.format_exception(exc_type, exc_value, exc_tb))
48-
print("error catched!:")
49-
print("error message:\n", tb)
50-
logging.error(tb)
50+
logging.error("error caught!")
51+
logging.error("error message:\n%s", tb)
5152
QtWidgets.QApplication.quit()
5253

5354

@@ -136,7 +137,7 @@ def create_project(project_path: str):
136137
# sys.exit(app.exec_())
137138
sys.excepthook = excepthook
138139
ret = app.exec_()
139-
print("event loop exited")
140+
logging.info("event loop exited")
140141

141142
s = sett()
142143
if os.path.isfile(s.colorizer.copy_stl_file):

src/bug_report.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import logging
12
import os
23
import shutil
34
import zipfile
@@ -19,6 +20,8 @@
1920
from src.settings import sett, save_splanes_to_file, PathBuilder
2021
from src.client import send_bug_report
2122

23+
logger = logging.getLogger(__name__)
24+
2225

2326
class bugReportDialog(QWidget):
2427
def __init__(self, controller):
@@ -190,4 +193,4 @@ def cleaningTempFiles(self):
190193
self.image_list.setText("")
191194
self.error_description.setText("")
192195
except Exception as e:
193-
print(str(e))
196+
logger.error(str(e))

src/client.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import src.server_api.pyapi.srv_bug.srv_bug_pb2 as srv_bug_pb2
2+
import logging
23
import src.server_api.pyapi.srv_bug.srv_bug_pb2_grpc as srv_bug_pb2_grpc
34
import grpc
45
import os
56
import yaml
67

8+
logger = logging.getLogger(__name__)
9+
710
CHUNK_SIZE = 1024 * 1024 # 1MB
811

912

@@ -40,12 +43,12 @@ def send_bug_report(filename, error_description):
4043

4144
# check if file exists
4245
if not os.path.exists(filename):
43-
print("File not found: %s" % filename)
46+
logger.error("File not found: %s", filename)
4447
return False
4548

4649
msgs = prepare_bug(filename, error_description)
4750

48-
print("prepared to call rpc")
51+
logger.info("prepared to call rpc")
4952
response = stub.AddBug(msgs)
50-
print(response)
53+
logger.info("%s", response)
5154
return True

src/controller.py

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,20 @@
4343
)
4444
import src.settings as settings
4545

46+
logger = logging.getLogger(__name__)
47+
4648
try:
4749
from src.bug_report import bugReportDialog
48-
except:
49-
print("bug reporting is unavailable")
50+
except Exception:
51+
logger.warning("bug reporting is unavailable")
5052

5153
# try import of private hardware module
5254
try:
5355
import src.hardware.service as service
5456
import src.hardware.calibration as calibration
5557
import src.hardware.printer as printer
5658
except Exception as e:
57-
print(f"hardware module is unavailable: {e}")
59+
logger.warning("hardware module is unavailable: %s", e)
5860

5961

6062
class MainController:
@@ -81,14 +83,14 @@ def __init__(self, view, model):
8183
self.printer, PathBuilder.calibration_file()
8284
),
8385
)
84-
except:
85-
print("printer is not initialized")
86+
except Exception:
87+
logger.warning("printer is not initialized")
8688

8789
# bug reporting might be unavailable
8890
try:
8991
self.bugReportDialog = bugReportDialog(self)
90-
except:
91-
print("bug reporting is unavailable")
92+
except Exception:
93+
logger.warning("bug reporting is unavailable")
9294
self._connect_signals()
9395

9496
def _connect_signals(self):
@@ -216,7 +218,7 @@ def create_printer(self):
216218
PathBuilder.calibration_file()
217219
)
218220
except AttributeError:
219-
print("hardware module is unavailable, skip")
221+
logger.warning("hardware module is unavailable, skip")
220222

221223
# show info dialog
222224
showInfoDialog(
@@ -255,7 +257,7 @@ def choose_printer_path(self):
255257
PathBuilder.calibration_file()
256258
)
257259
except AttributeError:
258-
print("hardware module is unavailable, skip")
260+
logger.warning("hardware module is unavailable, skip")
259261

260262
def moving_figure(self, sourceParent, previousRow):
261263
if sourceParent.row() != -1:
@@ -592,12 +594,12 @@ def load_stl(self, filename, colorize=False):
592594

593595
def load_gcode(self, filename, is_from_stl):
594596
def work():
595-
print("start parsing gcode")
597+
logger.info("start parsing gcode")
596598
start_time = time.time()
597599
gc = self.model.load_gcode(filename)
598-
print("finish parsing gcode")
600+
logger.info("finish parsing gcode")
599601
end_time = time.time()
600-
print("spent time for gcode loading: ", end_time - start_time, "s")
602+
logger.info("spent time for gcode loading: %s s", end_time - start_time)
601603

602604
return gc
603605

@@ -637,12 +639,12 @@ def slice_stl(self, slicing_type):
637639

638640
def work():
639641
start_time = time.time()
640-
print("start slicing")
642+
logger.info("start slicing")
641643
p = Process(PathBuilder.slicing_cmd())
642644
p.wait()
643-
print("finished command")
645+
logger.info("finished command")
644646
end_time = time.time()
645-
print("spent time for slicing: ", end_time - start_time, "s")
647+
logger.info("spent time for slicing: %s s", end_time - start_time)
646648

647649
if p.returncode == 2:
648650
# panic
@@ -672,7 +674,7 @@ def work():
672674
# load gcode without calibration
673675
self.view.picture_slider.setValue(0)
674676
self.load_gcode(PathBuilder.gcodevis_file(), True)
675-
print("loaded gcode")
677+
logger.info("loaded gcode")
676678
self.update_interface(sett().slicing.stl_filename)
677679

678680
def check_calibration_data_catalog(self):
@@ -708,8 +710,10 @@ def show_online_documentation(self):
708710

709711
def save_settings(self, slicing_type, filename=""):
710712
s = sett()
711-
print(
712-
f"saving settings of stl file {self.model.opened_stl} {s.slicing.stl_file}"
713+
logger.info(
714+
"saving settings of stl file %s %s",
715+
self.model.opened_stl,
716+
s.slicing.stl_file,
713717
)
714718
# s.slicing.stl_file = self.model.opened_stl
715719
tf = vtk.vtkTransform()

src/entry_window.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os, math
2+
import logging
23
from PyQt5.QtWidgets import (
34
QWidget,
45
QVBoxLayout,
@@ -33,6 +34,8 @@
3334
import src.locales as locales
3435
import shutil
3536

37+
logger = logging.getLogger(__name__)
38+
3639

3740
class EntryWindow(QWidget):
3841
# entry window is a window that is shown before main window
@@ -228,7 +231,7 @@ def load_recent_projects_root(self) -> str:
228231
return ""
229232

230233
def create_new_project(self):
231-
print("Creating new project...")
234+
logger.info("Creating new project...")
232235
# check if project name is empty
233236
if self.project_name_text_edit.text() == "":
234237
showErrorDialog(locales.getLocale().ProjectNameCannotBeEmpty)
@@ -249,7 +252,7 @@ def create_new_project(self):
249252
full_path = pathlib.Path(
250253
self.project_directory_edit.text(), self.project_name_text_edit.text()
251254
)
252-
print(full_path)
255+
logger.info("%s", full_path)
253256

254257
# check if project already exists
255258
if full_path.exists():
@@ -282,7 +285,7 @@ def open_existing_project_via_directory(self):
282285
self.open_existing_project(selected_project)
283286

284287
def open_existing_project(self, selected_project):
285-
print(f"Opening {selected_project}...")
288+
logger.info("Opening %s...", selected_project)
286289

287290
update_last_open_project(self.recent_projects, selected_project)
288291

src/figure_editor.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Provides a class creating a new window to edit parameters of custom figures
33
"""
44

5+
import logging
56
import sys
67
from typing import List, Callable, Dict, Tuple, Optional, Union
78
from functools import partial
@@ -27,6 +28,8 @@
2728
from src.settings import sett
2829
from src.locales import getLocale
2930

31+
logger = logging.getLogger(__name__)
32+
3033

3134
class FigureEditor(QWidget):
3235
"""
@@ -344,10 +347,10 @@ def update(self, pos, orient, scale):
344347
if __name__ == "__main__":
345348

346349
def handle1(d):
347-
print(1, d)
350+
logger.debug("handler1 %s", d)
348351

349352
def handle2(d):
350-
print(2, d)
353+
logger.debug("handler2 %s", d)
351354

352355
app = QApplication(sys.argv)
353356
f1 = PlaneEditor(handle1, None)

src/interactor_style.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
import logging
12
import vtk
23

34

5+
logger = logging.getLogger(__name__)
6+
7+
48
class ActorInteractorStyle(vtk.vtkInteractorStyleTrackballActor):
59
def __init__(self, onChange, parent=None):
610
self.WorkingActor = None
@@ -15,10 +19,10 @@ def __init__(self, onChange, parent=None):
1519
# self.AddObserver('MouseWheelBackwardEvent', self.bimodal_mouse_handler)
1620

1721
def onPressEvent(self, obj, event):
18-
print("INSIDE!")
22+
logger.debug("INSIDE!")
1923
# pos2d = obj.GetEventPosition()
2024
clickPos = self.GetInteractor().GetEventPosition()
21-
print(clickPos)
25+
logger.debug("%s", clickPos)
2226

2327
picker = vtk.vtkPropPicker()
2428
picker.Pick(clickPos[0], clickPos[1], 0, self.GetDefaultRenderer())
@@ -29,7 +33,7 @@ def onPressEvent(self, obj, event):
2933
if self.NewPickedActor != self.WorkingActor:
3034
return
3135

32-
print("BEFORE ON LEFT")
36+
logger.debug("BEFORE ON LEFT")
3337

3438
if event == "LeftButtonPressEvent":
3539
self.OnLeftButtonDown()

src/settings.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def compare_files(file1_path, file2_path):
130130
return False
131131

132132
except FileNotFoundError:
133-
print("Error during file comparison!")
133+
logging.error("Error during file comparison!")
134134
return True
135135

136136

@@ -232,7 +232,7 @@ def load_settings(filename=""):
232232

233233
def read_settings(filename=""):
234234
if not filename:
235-
print("retrieving settings")
235+
logging.debug("retrieving settings")
236236
if getattr(sys, "frozen", False):
237237
app_path = path.dirname(sys.executable)
238238
# uncomment if you want some protection that nothing would be broken
@@ -280,7 +280,7 @@ def save_settings(filename=""):
280280

281281
temp = prepare_temp_settings(_sett)
282282

283-
print(f"saving settings to {filename}")
283+
logging.info("saving settings to %s", filename)
284284
with open(filename, "w") as f:
285285
f.write(temp)
286286

@@ -307,7 +307,7 @@ def get_version(settings_filename):
307307
version = settings["common"]["version"]
308308
return version
309309
except Exception as e:
310-
print("Error reading version")
310+
logging.error("Error reading version")
311311
return ""
312312

313313

@@ -322,7 +322,7 @@ def set_version(settings_filename, version):
322322
yaml.dump(settings, settings_file, default_flow_style=False)
323323

324324
except Exception as e:
325-
print("Error writing version")
325+
logging.error("Error writing version")
326326

327327

328328
def paths_transfer_in_settings(initial_settings_filename, final_settings_filename):
@@ -418,15 +418,15 @@ def has_same_attributes(self, other):
418418
if attr in ignore_attributes:
419419
continue
420420
if not hasattr(other, attr):
421-
print(f"Attribute {attr} not found in other")
421+
logging.warning("Attribute %s not found in other", attr)
422422
return False
423423

424424
# try to compare attributes from right to left
425425
for attr in other.__dict__:
426426
if attr in ignore_attributes:
427427
continue
428428
if not hasattr(self, attr):
429-
print(f"Attribute {attr} not found in self")
429+
logging.warning("Attribute %s not found in self", attr)
430430
return False
431431

432432
return True

src/settings_widget.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import logging
12
from PyQt5 import QtCore
23
from PyQt5 import QtGui
34
from PyQt5.QtWidgets import (
@@ -19,6 +20,8 @@
1920
from src.settings import sett, APP_PATH, Settings, read_settings
2021
from src.qt_utils import ClickableLineEdit, LineEdit
2122

23+
logger = logging.getLogger(__name__)
24+
2225
import os.path as path
2326
import logging
2427
import re
@@ -357,7 +360,7 @@ def remove_row(key, row_idx):
357360
row_idx = self.__elements[key]["row_idx"]
358361
remove_row(key, row_idx)
359362
except KeyError:
360-
print(f"Key {key} not found in elements")
363+
logger.warning("Key %s not found in elements", key)
361364
pass
362365

363366
self.__current_row = 1

0 commit comments

Comments
 (0)