Import LinuxCNC source tree
This commit is contained in:
39
tests/interp/python/error/canon.py
Normal file
39
tests/interp/python/error/canon.py
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python3
|
||||
import tempfile
|
||||
import gcode
|
||||
import sys
|
||||
|
||||
def float_fmt(f):
|
||||
if isinstance(f, float): return "% 5.1g" % f
|
||||
return "%5s" % f
|
||||
|
||||
class Canon:
|
||||
# Stay on the per-event canon protocol; the catch-all __getattr__ below
|
||||
# would otherwise answer gcode.parse's move-batch probe with a callable.
|
||||
use_move_batches = False
|
||||
|
||||
def __getattr__(self, attr):
|
||||
"""Assume that any unknown attribute is a canon call; just print
|
||||
its args and return None"""
|
||||
|
||||
def inner(*args):
|
||||
args = list(map(float_fmt, args))
|
||||
print("%-17s %s" % (attr, " ".join(args)))
|
||||
return inner
|
||||
|
||||
# this is just noisy
|
||||
def next_line(self, linecode): pass
|
||||
|
||||
# These can't just return None...
|
||||
def get_external_length_units(self): return 1.0
|
||||
def get_external_angular_units(self): return 1.0
|
||||
def get_axis_mask(self): return 7 # (x y z)
|
||||
def get_block_delete(self): return False
|
||||
def get_tool(self, pocket):
|
||||
return -1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0
|
||||
|
||||
parameter = tempfile.NamedTemporaryFile()
|
||||
canon = Canon()
|
||||
canon.parameter_file = parameter.name
|
||||
result, seq = gcode.parse(sys.argv[1], canon, '', '', '')
|
||||
if result > gcode.MIN_ERROR: raise SystemExit(gcode.strerror(result))
|
||||
Reference in New Issue
Block a user