Skip to content

Commit 149cc8c

Browse files
committed
python 3 changes exceptions, queue and asesrtEqual
1) import Queue is now lower caps 2) exceptions except KeyError as e: 3) assertEquals is deprecated but assertEqual does exactly same thing
1 parent d767d19 commit 149cc8c

24 files changed

+239
-213
lines changed

.gitignore

+8
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,11 @@ OctoPrint.egg-info
2929
*.orig
3030

3131
*.codekit
32+
33+
venv
34+
venv26
35+
venv27
36+
venv33
37+
venv34
38+
venv35
39+
venv36

src/octoprint/events.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
import datetime
99
import logging
1010
import subprocess
11-
import Queue
11+
try:
12+
import queue
13+
except ImportError:
14+
import Queue as queue
1215
import threading
1316
import collections
1417

@@ -120,7 +123,7 @@ def __init__(self):
120123
self._registeredListeners = collections.defaultdict(list)
121124
self._logger = logging.getLogger(__name__)
122125

123-
self._queue = Queue.Queue()
126+
self._queue = queue.Queue()
124127
self._worker = threading.Thread(target=self._work)
125128
self._worker.daemon = True
126129
self._worker.start()
@@ -300,7 +303,7 @@ def eventCallback(self, event, payload):
300303
else:
301304
processedCommand = self._processCommand(command, payload)
302305
self.executeCommand(processedCommand, commandType, debug=debug)
303-
except KeyError, e:
306+
except KeyError as e:
304307
self._logger.warn("There was an error processing one or more placeholders in the following command: %s" % command)
305308

306309
def executeCommand(self, command, commandType, debug=False):
@@ -324,7 +327,7 @@ def commandExecutioner(command):
324327
commandExecutioner(c)
325328
else:
326329
commandExecutioner(command)
327-
except subprocess.CalledProcessError, e:
330+
except subprocess.CalledProcessError as e:
328331
self._logger.warn("Command failed with return code %i: %s" % (e.returncode, str(e)))
329332
except:
330333
self._logger.exception("Command failed")

src/octoprint/filemanager/analysis.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77

88

99
import logging
10-
import Queue as queue
10+
try:
11+
import queue
12+
except ImportError:
13+
import Queue as queue
1114
import os
1215
import threading
1316
import collections

src/octoprint/plugins/virtual_printer/virtual.py

+15-12
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
import re
1010
import threading
1111
import math
12-
import Queue
12+
try:
13+
import queue
14+
except ImportError:
15+
import Queue as queue
1316

1417
from serial import SerialTimeoutException
1518

@@ -42,8 +45,8 @@ def __init__(self, seriallog_handler=None, read_timeout=5.0, write_timeout=10.0)
4245
self._write_timeout = write_timeout
4346

4447
self.incoming = CharCountingQueue(settings().getInt(["devel", "virtualPrinter", "rxBuffer"]), name="RxBuffer")
45-
self.outgoing = Queue.Queue()
46-
self.buffered = Queue.Queue(maxsize=settings().getInt(["devel", "virtualPrinter", "commandBuffer"]))
48+
self.outgoing = queue.Queue()
49+
self.buffered = queue.Queue(maxsize=settings().getInt(["devel", "virtualPrinter", "commandBuffer"]))
4750

4851
for item in ['start\n', 'Marlin: Virtual Marlin!\n', '\x80\n', 'SD card ok\n']:
4952
self._send(item)
@@ -121,7 +124,7 @@ def _clearQueue(self, queue):
121124
try:
122125
while queue.get(block=False):
123126
continue
124-
except Queue.Empty:
127+
except queue.Empty:
125128
pass
126129

127130
def _processIncoming(self):
@@ -131,7 +134,7 @@ def _processIncoming(self):
131134

132135
try:
133136
data = self.incoming.get(timeout=0.01)
134-
except Queue.Empty:
137+
except queue.Empty:
135138
if self._sendWait and time.time() > next_wait_timeout:
136139
self._send("wait")
137140
next_wait_timeout = time.time() + self._waitInterval
@@ -839,7 +842,7 @@ def _processBuffer(self):
839842
while self.buffered is not None:
840843
try:
841844
line = self.buffered.get(timeout=0.5)
842-
except Queue.Empty:
845+
except queue.Empty:
843846
continue
844847

845848
if line is None:
@@ -865,7 +868,7 @@ def write(self, data):
865868
try:
866869
self.incoming.put(data, timeout=self._write_timeout)
867870
self._seriallog.info("<<< {}".format(data.strip()))
868-
except Queue.Full:
871+
except queue.Full:
869872
self._logger.info("Incoming queue is full, raising SerialTimeoutException")
870873
raise SerialTimeoutException()
871874

@@ -877,7 +880,7 @@ def readline(self):
877880
line = self.outgoing.get(timeout=self._read_timeout)
878881
self._seriallog.info(">>> {}".format(line.strip()))
879882
return line
880-
except Queue.Empty:
883+
except queue.Empty:
881884
return ""
882885

883886
def close(self):
@@ -904,10 +907,10 @@ def _send(self, line):
904907
if self.outgoing is not None:
905908
self.outgoing.put(line)
906909

907-
class CharCountingQueue(Queue.Queue):
910+
class CharCountingQueue(queue.Queue):
908911

909912
def __init__(self, maxsize, name=None):
910-
Queue.Queue.__init__(self, maxsize=maxsize)
913+
queue.Queue.__init__(self, maxsize=maxsize)
911914
self._size = 0
912915
self._name = name
913916

@@ -918,7 +921,7 @@ def put(self, item, block=True, timeout=None):
918921

919922
if not block:
920923
if self._qsize() + item_size >= self.maxsize:
921-
raise Queue.Full
924+
raise queue.Full
922925
elif timeout is None:
923926
while self._qsize() + item_size >= self.maxsize:
924927
self.not_full.wait()
@@ -929,7 +932,7 @@ def put(self, item, block=True, timeout=None):
929932
while self._qsize() + item_size >= self.maxsize:
930933
remaining = endtime - time.time()
931934
if remaining <= 0.0:
932-
raise Queue.Full
935+
raise queue.Full
933936
self.not_full.wait(remaining)
934937

935938
self._put(item)

src/octoprint/printer/standard.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,7 @@ def _sendInitialStateUpdate(self, callback):
804804
"messages": list(self._messages)
805805
})
806806
callback.on_printer_send_initial_data(data)
807-
except Exception, err:
807+
except Exception as err:
808808
import sys
809809
sys.stderr.write("ERROR: %s\n" % str(err))
810810
pass

src/octoprint/server/api/system.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def executeSystemCommand(source, command):
9393
error = "Command failed with return code {}:\nSTDOUT: {}\nSTDERR: {}".format(returncode, stdout_text, stderr_text)
9494
logger.warn(error)
9595
return make_response(error, 500)
96-
except Exception, e:
96+
except Exception as e:
9797
if not ignore:
9898
error = "Command failed: {}".format(str(e))
9999
logger.warn(error)

src/octoprint/timelapse.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
import datetime
1212
import sys
1313
import shutil
14-
import Queue
14+
try:
15+
import queue
16+
except ImportError:
17+
import Queue as queue
1518
import requests
1619

1720
import octoprint.util as util
@@ -318,7 +321,7 @@ def __init__(self, post_roll=0, fps=25):
318321
self._fps = fps
319322

320323
self._capture_mutex = threading.Lock()
321-
self._capture_queue = Queue.Queue()
324+
self._capture_queue = queue.Queue()
322325
self._capture_queue_active = True
323326

324327
self._capture_queue_thread = threading.Thread(target=self._capture_queue_worker)

src/octoprint/util/__init__.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818
from functools import wraps
1919
import warnings
2020
import contextlib
21-
import Queue as queue
21+
try:
22+
import queue
23+
except ImportError:
24+
import Queue as queue
2225

2326
logger = logging.getLogger(__name__)
2427

src/octoprint/util/comm.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
import time
1111
import re
1212
import threading
13-
import Queue as queue
13+
try:
14+
import queue
15+
except ImportError:
16+
import Queue as queue
1417
import logging
1518
import serial
1619
import octoprint.plugin
@@ -1464,7 +1467,7 @@ def _detectPort(self, close):
14641467
self._log("Connecting to: %s" % (p))
14651468
programmer.connect(p)
14661469
serial_obj = programmer.leaveISP()
1467-
except ispBase.IspError as (e):
1470+
except ispBase.IspError as e:
14681471
error_message = "Error while connecting to %s: %s" % (p, str(e))
14691472
self._log(error_message)
14701473
self._logger.exception(error_message)

tests/filemanager/test_filemanager.py

+26-26
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ def test_full_extension_tree(self):
6767
self.assertItemsEqual(["amf"], full["model"]["amf"])
6868

6969
def test_get_mimetype(self):
70-
self.assertEquals(octoprint.filemanager.get_mime_type("foo.stl"), "application/sla")
71-
self.assertEquals(octoprint.filemanager.get_mime_type("foo.gcode"), "text/plain")
72-
self.assertEquals(octoprint.filemanager.get_mime_type("foo.unknown"), "application/octet-stream")
73-
self.assertEquals(octoprint.filemanager.get_mime_type("foo.mime_map_yes"), "application/mime_map_yes")
74-
self.assertEquals(octoprint.filemanager.get_mime_type("foo.mime_map_no"), "application/octet-stream")
75-
self.assertEquals(octoprint.filemanager.get_mime_type("foo.mime_detect_yes"), "application/mime_detect_yes")
76-
self.assertEquals(octoprint.filemanager.get_mime_type("foo.mime_detect_no"), "application/octet-stream")
70+
self.assertEqual(octoprint.filemanager.get_mime_type("foo.stl"), "application/sla")
71+
self.assertEqual(octoprint.filemanager.get_mime_type("foo.gcode"), "text/plain")
72+
self.assertEqual(octoprint.filemanager.get_mime_type("foo.unknown"), "application/octet-stream")
73+
self.assertEqual(octoprint.filemanager.get_mime_type("foo.mime_map_yes"), "application/mime_map_yes")
74+
self.assertEqual(octoprint.filemanager.get_mime_type("foo.mime_map_no"), "application/octet-stream")
75+
self.assertEqual(octoprint.filemanager.get_mime_type("foo.mime_detect_yes"), "application/mime_detect_yes")
76+
self.assertEqual(octoprint.filemanager.get_mime_type("foo.mime_detect_no"), "application/octet-stream")
7777

7878
def test_valid_file_type(self):
7979
self.assertTrue(octoprint.filemanager.valid_file_type("foo.stl", type="model"))
@@ -87,11 +87,11 @@ def test_valid_file_type(self):
8787
self.assertFalse(octoprint.filemanager.valid_file_type("foo.unknown"))
8888

8989
def test_get_file_type(self):
90-
self.assertEquals(["machinecode", "gcode"], octoprint.filemanager.get_file_type("foo.gcode"))
91-
self.assertEquals(["machinecode", "gcode"], octoprint.filemanager.get_file_type("foo.gco"))
92-
self.assertEquals(["machinecode", "foo"], octoprint.filemanager.get_file_type("foo.f"))
93-
self.assertEquals(["model", "stl"], octoprint.filemanager.get_file_type("foo.stl"))
94-
self.assertEquals(["model", "amf"], octoprint.filemanager.get_file_type("foo.amf"))
90+
self.assertEqual(["machinecode", "gcode"], octoprint.filemanager.get_file_type("foo.gcode"))
91+
self.assertEqual(["machinecode", "gcode"], octoprint.filemanager.get_file_type("foo.gco"))
92+
self.assertEqual(["machinecode", "foo"], octoprint.filemanager.get_file_type("foo.f"))
93+
self.assertEqual(["model", "stl"], octoprint.filemanager.get_file_type("foo.stl"))
94+
self.assertEqual(["model", "amf"], octoprint.filemanager.get_file_type("foo.amf"))
9595
self.assertIsNone(octoprint.filemanager.get_file_type("foo.unknown"))
9696

9797
def test_hook_failure(self):
@@ -105,7 +105,7 @@ def hook():
105105

106106
octoprint.filemanager.get_all_extensions()
107107

108-
self.assertEquals(1, len(logger.mock_calls))
108+
self.assertEqual(1, len(logger.mock_calls))
109109

110110
class FileManagerTest(unittest.TestCase):
111111

@@ -165,7 +165,7 @@ def test_add_file(self):
165165

166166
file_path = self.file_manager.add_file(octoprint.filemanager.FileDestinations.LOCAL, "test.file", wrapper)
167167

168-
self.assertEquals(("", "test.file"), file_path)
168+
self.assertEqual(("", "test.file"), file_path)
169169
self.local_storage.add_file.assert_called_once_with("test.file", wrapper, printer_profile=test_profile, allow_overwrite=False, links=None)
170170
self.fire_event.assert_called_once_with(octoprint.filemanager.Events.UPDATED_FILES, dict(type="printables"))
171171

@@ -180,7 +180,7 @@ def test_add_folder(self):
180180

181181
folder_path = self.file_manager.add_folder(octoprint.filemanager.FileDestinations.LOCAL, "test_folder")
182182

183-
self.assertEquals(("", "test_folder"), folder_path)
183+
self.assertEqual(("", "test_folder"), folder_path)
184184
self.local_storage.add_folder.assert_called_once_with("test_folder", ignore_existing=True)
185185
self.fire_event.assert_called_once_with(octoprint.filemanager.Events.UPDATED_FILES, dict(type="printables"))
186186

@@ -191,7 +191,7 @@ def test_add_folder_not_ignoring_existing(self):
191191
self.file_manager.add_folder(octoprint.filemanager.FileDestinations.LOCAL, "test_folder", ignore_existing=False)
192192
self.fail("Expected an exception to occur!")
193193
except RuntimeError as e:
194-
self.assertEquals("already there", e.message)
194+
self.assertEqual("already there", e.message)
195195
self.local_storage.add_folder.assert_called_once_with("test_folder", ignore_existing=False)
196196

197197
def test_remove_folder(self):
@@ -333,7 +333,7 @@ def test_get_metadata(self):
333333

334334
metadata = self.file_manager.get_metadata(octoprint.filemanager.FileDestinations.LOCAL, "test.file")
335335

336-
self.assertEquals(metadata, expected)
336+
self.assertEqual(metadata, expected)
337337
self.local_storage.get_metadata.assert_called_once_with("test.file")
338338

339339
@mock.patch("octoprint.filemanager.util.atomic_write")
@@ -384,9 +384,9 @@ def add_file(path, file_obj, printer_profile=None, links=None, allow_overwrite=F
384384

385385
# mock slice method on slicing manager
386386
def slice(slicer_name, source_path, dest_path, profile, done_cb, printer_profile_id=None, position=None, callback_args=None, overrides=None, on_progress=None, on_progress_args=None, on_progress_kwargs=None):
387-
self.assertEquals("some_slicer", slicer_name)
388-
self.assertEquals("prefix/source.file", source_path)
389-
self.assertEquals("tmp.file", dest_path)
387+
self.assertEqual("some_slicer", slicer_name)
388+
self.assertEqual("prefix/source.file", source_path)
389+
self.assertEqual("tmp.file", dest_path)
390390
self.assertIsNone(profile)
391391
self.assertIsNone(overrides)
392392
self.assertIsNone(printer_profile_id)
@@ -415,15 +415,15 @@ def slice(slicer_name, source_path, dest_path, profile, done_cb, printer_profile
415415

416416
# assert that the generated gcode was manipulated as required
417417
expected_atomic_write_calls = [mock.call("prefix/dest.file", "wb")]
418-
self.assertEquals(mocked_atomic_write.call_args_list, expected_atomic_write_calls)
418+
self.assertEqual(mocked_atomic_write.call_args_list, expected_atomic_write_calls)
419419
#mocked_open.return_value.write.assert_called_once_with(";Generated from source.file aabbccddeeff\r")
420420

421421
# assert that shutil was asked to copy the concatenated multistream
422-
self.assertEquals(1, len(mocked_shutil.call_args_list))
422+
self.assertEqual(1, len(mocked_shutil.call_args_list))
423423
shutil_call_args = mocked_shutil.call_args_list[0]
424424
self.assertTrue(isinstance(shutil_call_args[0][0], octoprint.filemanager.util.MultiStream))
425425
multi_stream = shutil_call_args[0][0]
426-
self.assertEquals(2, len(multi_stream.streams))
426+
self.assertEqual(2, len(multi_stream.streams))
427427
self.assertTrue(isinstance(multi_stream.streams[0], io.BytesIO))
428428

429429
# assert that the temporary file was deleted
@@ -457,9 +457,9 @@ def path_on_disk(path):
457457

458458
# mock slice method on slicing manager
459459
def slice(slicer_name, source_path, dest_path, profile, done_cb, printer_profile_id=None, position=None, callback_args=None, overrides=None, on_progress=None, on_progress_args=None, on_progress_kwargs=None):
460-
self.assertEquals("some_slicer", slicer_name)
461-
self.assertEquals("prefix/source.file", source_path)
462-
self.assertEquals("tmp.file", dest_path)
460+
self.assertEqual("some_slicer", slicer_name)
461+
self.assertEqual("prefix/source.file", source_path)
462+
self.assertEqual("tmp.file", dest_path)
463463
self.assertIsNone(profile)
464464
self.assertIsNone(overrides)
465465
self.assertIsNone(printer_profile_id)

0 commit comments

Comments
 (0)