mirror of
				https://github.com/python-escpos/python-escpos
				synced 2025-10-23 09:30:00 +00:00 
			
		
		
		
	Add demo functions
This commit is contained in:
		
				
					committed by
					
						
						Davis Goglin
					
				
			
			
				
	
			
			
			
						parent
						
							cdf8f6be09
						
					
				
				
					commit
					7d74dcac00
				
			
							
								
								
									
										302
									
								
								escpos/cli.py
									
									
									
									
									
								
							
							
						
						
									
										302
									
								
								escpos/cli.py
									
									
									
									
									
								
							@@ -9,244 +9,324 @@ import six
 | 
				
			|||||||
import os
 | 
					import os
 | 
				
			||||||
from . import printer, config
 | 
					from . import printer, config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
c = config.Config()
 | 
					demo_functions = {
 | 
				
			||||||
printer = c.printer()
 | 
					    'text': [
 | 
				
			||||||
 | 
					        {'txt': 'Hello, World!',}
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    'qr': [
 | 
				
			||||||
 | 
					        {'text': 'This tests a QR code'},
 | 
				
			||||||
 | 
					        {'text': 'https://en.wikipedia.org/'}
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    'barcodes_a': [
 | 
				
			||||||
 | 
					        {'bc': 'UPC-A',  'code': '13243546576'},
 | 
				
			||||||
 | 
					        {'bc': 'UPC-E',  'code': '132435'},
 | 
				
			||||||
 | 
					        {'bc': 'EAN13',  'code': '1324354657687'},
 | 
				
			||||||
 | 
					        {'bc': 'EAN8',   'code': '13243546'},
 | 
				
			||||||
 | 
					        {'bc': 'CODE39', 'code': '*TEST*'},
 | 
				
			||||||
 | 
					        {'bc': 'ITF',    'code': '55867492279103'},
 | 
				
			||||||
 | 
					        {'bc': 'NW7',    'code': 'A00000000A'},
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    'barcodes_b': [
 | 
				
			||||||
 | 
					        {'bc': 'UPC-A',                       'code': '13243546576',          'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'UPC-E',                       'code': '132435',               'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'EAN13',                       'code': '1324354657687',        'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'EAN8',                        'code': '13243546',             'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'CODE39',                      'code': '*TEST*',               'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'ITF',                         'code': '55867492279103',       'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'NW7',                         'code': 'A00000000A',           'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'CODE93',                      'code': 'A00000000A',           'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'CODE93',                      'code': '1324354657687',        'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'CODE128A',                    'code': '*TEST*',               'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'CODE128B',                    'code': '*TEST*',               'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'CODE128C',                    'code': '*TEST*',               'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'GS1-128',                     'code': '00123456780000000001', 'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'GS1 DataBar Omnidirectional', 'code': '0000000000000',        'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'GS1 DataBar Truncated',       'code': '0000000000000',        'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'GS1 DataBar Limited',         'code': '0000000000000',        'function_type': 'B'},
 | 
				
			||||||
 | 
					        {'bc': 'GS1 DataBar Expanded',        'code': '00AAAAAAA',            'function_type': 'B'},
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser = argparse.ArgumentParser(
 | 
					def main():
 | 
				
			||||||
 | 
					    c = config.Config()
 | 
				
			||||||
 | 
					    printer = c.printer()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    parser = argparse.ArgumentParser(
 | 
				
			||||||
        description='CLI for python-escpos',
 | 
					        description='CLI for python-escpos',
 | 
				
			||||||
        epilog='Printer configuration is defined in the python-escpos config file. See documentation for details.',
 | 
					        epilog='Printer configuration is defined in the python-escpos config file. See documentation for details.',
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
command_subparsers = parser.add_subparsers(
 | 
					    command_subparsers = parser.add_subparsers(
 | 
				
			||||||
        title='ESCPOS Command',
 | 
					        title='ESCPOS Command',
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# From here on func needs to be a string, since we don't have a printer to work on yet
 | 
					    # From here on func needs to be a string, since we don't have a printer to work on yet
 | 
				
			||||||
parser_command_qr = command_subparsers.add_parser('qr', help='Print a QR code')
 | 
					    parser_command_qr = command_subparsers.add_parser('qr', help='Print a QR code')
 | 
				
			||||||
parser_command_qr.set_defaults(func='qr')
 | 
					    parser_command_qr.set_defaults(func='qr')
 | 
				
			||||||
parser_command_qr.add_argument(
 | 
					    parser_command_qr.add_argument(
 | 
				
			||||||
        '--text',
 | 
					        '--text',
 | 
				
			||||||
        help='Text to print as a qr code',
 | 
					        help='Text to print as a qr code',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_barcode = command_subparsers.add_parser('barcode', help='Print a barcode')
 | 
					    parser_command_barcode = command_subparsers.add_parser('barcode', help='Print a barcode')
 | 
				
			||||||
parser_command_barcode.set_defaults(func='barcode')
 | 
					    parser_command_barcode.set_defaults(func='barcode')
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--code',
 | 
					        '--code',
 | 
				
			||||||
        help='Barcode data to print',
 | 
					        help='Barcode data to print',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--bc',
 | 
					        '--bc',
 | 
				
			||||||
        help='Barcode format',
 | 
					        help='Barcode format',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--height',
 | 
					        '--height',
 | 
				
			||||||
        help='Barcode height in px',
 | 
					        help='Barcode height in px',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--width',
 | 
					        '--width',
 | 
				
			||||||
        help='Barcode width',
 | 
					        help='Barcode width',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
) 
 | 
					    )
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--pos',
 | 
					        '--pos',
 | 
				
			||||||
        help='Label position',
 | 
					        help='Label position',
 | 
				
			||||||
        choices=['BELOW', 'ABOVE', 'BOTH', 'OFF']
 | 
					        choices=['BELOW', 'ABOVE', 'BOTH', 'OFF']
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--font',
 | 
					        '--font',
 | 
				
			||||||
        help='Label font',
 | 
					        help='Label font',
 | 
				
			||||||
        choices=['A', 'B']
 | 
					        choices=['A', 'B']
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--align_ct',
 | 
					        '--align_ct',
 | 
				
			||||||
        help='Align barcode center',
 | 
					        help='Align barcode center',
 | 
				
			||||||
        type=bool
 | 
					        type=bool
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_barcode.add_argument(
 | 
					    parser_command_barcode.add_argument(
 | 
				
			||||||
        '--function_type',
 | 
					        '--function_type',
 | 
				
			||||||
        help='ESCPOS function type',
 | 
					        help='ESCPOS function type',
 | 
				
			||||||
        choices=['A', 'B']
 | 
					        choices=['A', 'B']
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_text = command_subparsers.add_parser('text', help='Print plain text')
 | 
					    parser_command_text = command_subparsers.add_parser('text', help='Print plain text')
 | 
				
			||||||
parser_command_text.set_defaults(func='text')
 | 
					    parser_command_text.set_defaults(func='text')
 | 
				
			||||||
parser_command_text.add_argument(
 | 
					    parser_command_text.add_argument(
 | 
				
			||||||
        '--txt',
 | 
					        '--txt',
 | 
				
			||||||
        help='Text to print',
 | 
					        help='Text to print',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_block_text = command_subparsers.add_parser('block_text', help='Print wrapped text')
 | 
					    parser_command_block_text = command_subparsers.add_parser('block_text', help='Print wrapped text')
 | 
				
			||||||
parser_command_block_text.set_defaults(func='block_text')
 | 
					    parser_command_block_text.set_defaults(func='block_text')
 | 
				
			||||||
parser_command_block_text.add_argument(
 | 
					    parser_command_block_text.add_argument(
 | 
				
			||||||
        '--txt',
 | 
					        '--txt',
 | 
				
			||||||
        help='block_text to print',
 | 
					        help='block_text to print',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_block_text.add_argument(
 | 
					    parser_command_block_text.add_argument(
 | 
				
			||||||
        '--columns',
 | 
					        '--columns',
 | 
				
			||||||
        help='Number of columns',
 | 
					        help='Number of columns',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_cut = command_subparsers.add_parser('cut', help='Cut the paper')
 | 
					    parser_command_cut = command_subparsers.add_parser('cut', help='Cut the paper')
 | 
				
			||||||
parser_command_cut.set_defaults(func='cut')
 | 
					    parser_command_cut.set_defaults(func='cut')
 | 
				
			||||||
parser_command_cut.add_argument(
 | 
					    parser_command_cut.add_argument(
 | 
				
			||||||
        '--mode',
 | 
					        '--mode',
 | 
				
			||||||
        help='Type of cut',
 | 
					        help='Type of cut',
 | 
				
			||||||
        choices=['FULL', 'PART']
 | 
					        choices=['FULL', 'PART']
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_cashdraw = command_subparsers.add_parser('cashdraw', help='Kick the cash drawer')
 | 
					    parser_command_cashdraw = command_subparsers.add_parser('cashdraw', help='Kick the cash drawer')
 | 
				
			||||||
parser_command_cashdraw.set_defaults(func='cashdraw')
 | 
					    parser_command_cashdraw.set_defaults(func='cashdraw')
 | 
				
			||||||
parser_command_cashdraw.add_argument(
 | 
					    parser_command_cashdraw.add_argument(
 | 
				
			||||||
        '--pin',
 | 
					        '--pin',
 | 
				
			||||||
        help='Which PIN to kick',
 | 
					        help='Which PIN to kick',
 | 
				
			||||||
        choices=[2, 5]
 | 
					        choices=[2, 5]
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_image = command_subparsers.add_parser('image', help='Print an image')
 | 
					    parser_command_image = command_subparsers.add_parser('image', help='Print an image')
 | 
				
			||||||
parser_command_image.set_defaults(func='image')
 | 
					    parser_command_image.set_defaults(func='image')
 | 
				
			||||||
parser_command_image.add_argument(
 | 
					    parser_command_image.add_argument(
 | 
				
			||||||
        '--path_img',
 | 
					        '--path_img',
 | 
				
			||||||
        help='Path to image',
 | 
					        help='Path to image',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_fullimage = command_subparsers.add_parser('fullimage', help='Print an fullimage')
 | 
					    parser_command_fullimage = command_subparsers.add_parser('fullimage', help='Print an fullimage')
 | 
				
			||||||
parser_command_fullimage.set_defaults(func='fullimage')
 | 
					    parser_command_fullimage.set_defaults(func='fullimage')
 | 
				
			||||||
parser_command_fullimage.add_argument(
 | 
					    parser_command_fullimage.add_argument(
 | 
				
			||||||
        '--img',
 | 
					        '--img',
 | 
				
			||||||
        help='Path to img',
 | 
					        help='Path to img',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_fullimage.add_argument(
 | 
					    parser_command_fullimage.add_argument(
 | 
				
			||||||
        '--max_height',
 | 
					        '--max_height',
 | 
				
			||||||
        help='Max height of image in px',
 | 
					        help='Max height of image in px',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_fullimage.add_argument(
 | 
					    parser_command_fullimage.add_argument(
 | 
				
			||||||
        '--width',
 | 
					        '--width',
 | 
				
			||||||
        help='Max width of image in px',
 | 
					        help='Max width of image in px',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_fullimage.add_argument(
 | 
					    parser_command_fullimage.add_argument(
 | 
				
			||||||
        '--histeq',
 | 
					        '--histeq',
 | 
				
			||||||
        help='Equalize the histrogram',
 | 
					        help='Equalize the histrogram',
 | 
				
			||||||
        type=bool
 | 
					        type=bool
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_fullimage.add_argument(
 | 
					    parser_command_fullimage.add_argument(
 | 
				
			||||||
        '--bandsize',
 | 
					        '--bandsize',
 | 
				
			||||||
        help='Size of bands to divide into when printing',
 | 
					        help='Size of bands to divide into when printing',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Not supported
 | 
					    # Not supported
 | 
				
			||||||
# parser_command_direct_image = command_subparsers.add_parser('direct_direct_image', help='Print an direct_image')
 | 
					    # parser_command_direct_image = command_subparsers.add_parser('direct_direct_image', help='Print an direct_image')
 | 
				
			||||||
# parser_command_direct_image.set_defaults(func='direct_image')
 | 
					    # parser_command_direct_image.set_defaults(func='direct_image')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_charcode = command_subparsers.add_parser('charcode', help='Set character code table')
 | 
					    parser_command_charcode = command_subparsers.add_parser('charcode', help='Set character code table')
 | 
				
			||||||
parser_command_charcode.set_defaults(func='charcode')
 | 
					    parser_command_charcode.set_defaults(func='charcode')
 | 
				
			||||||
parser_command_charcode.add_argument(
 | 
					    parser_command_charcode.add_argument(
 | 
				
			||||||
        '--code',
 | 
					        '--code',
 | 
				
			||||||
        help='Character code',
 | 
					        help='Character code',
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_set = command_subparsers.add_parser('set', help='Set text properties')
 | 
					    parser_command_set = command_subparsers.add_parser('set', help='Set text properties')
 | 
				
			||||||
parser_command_set.set_defaults(func='set')
 | 
					    parser_command_set.set_defaults(func='set')
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--align',
 | 
					        '--align',
 | 
				
			||||||
        help='Horizontal alignment',
 | 
					        help='Horizontal alignment',
 | 
				
			||||||
        choices=['left', 'center', 'right']
 | 
					        choices=['left', 'center', 'right']
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--font',
 | 
					        '--font',
 | 
				
			||||||
        help='Font choice',
 | 
					        help='Font choice',
 | 
				
			||||||
        choices=['left', 'center', 'right']
 | 
					        choices=['left', 'center', 'right']
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--text_type',
 | 
					        '--text_type',
 | 
				
			||||||
        help='Text properties',
 | 
					        help='Text properties',
 | 
				
			||||||
        choices=['B', 'U', 'U2', 'BU', 'BU2', 'NORMAL']
 | 
					        choices=['B', 'U', 'U2', 'BU', 'BU2', 'NORMAL']
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--width',
 | 
					        '--width',
 | 
				
			||||||
        help='Width multiplier',
 | 
					        help='Width multiplier',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--height',
 | 
					        '--height',
 | 
				
			||||||
        help='Height multiplier',
 | 
					        help='Height multiplier',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--density',
 | 
					        '--density',
 | 
				
			||||||
        help='Print density',
 | 
					        help='Print density',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--invert',
 | 
					        '--invert',
 | 
				
			||||||
        help='White on black printing',
 | 
					        help='White on black printing',
 | 
				
			||||||
        type=bool
 | 
					        type=bool
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--smooth',
 | 
					        '--smooth',
 | 
				
			||||||
        help='Text smoothing. Effective on >= 4x4 text',
 | 
					        help='Text smoothing. Effective on >= 4x4 text',
 | 
				
			||||||
        type=bool
 | 
					        type=bool
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_set.add_argument(
 | 
					    parser_command_set.add_argument(
 | 
				
			||||||
        '--flip',
 | 
					        '--flip',
 | 
				
			||||||
        help='Text smoothing. Effective on >= 4x4 text',
 | 
					        help='Text smoothing. Effective on >= 4x4 text',
 | 
				
			||||||
        type=bool
 | 
					        type=bool
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_hw = command_subparsers.add_parser('hw', help='Hardware operations')
 | 
					    parser_command_hw = command_subparsers.add_parser('hw', help='Hardware operations')
 | 
				
			||||||
parser_command_hw.set_defaults(func='hw')
 | 
					    parser_command_hw.set_defaults(func='hw')
 | 
				
			||||||
parser_command_hw.add_argument(
 | 
					    parser_command_hw.add_argument(
 | 
				
			||||||
        '--hw',
 | 
					        '--hw',
 | 
				
			||||||
        help='Operation',
 | 
					        help='Operation',
 | 
				
			||||||
        choices=['INIT', 'SELECT', 'RESET'],
 | 
					        choices=['INIT', 'SELECT', 'RESET'],
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_control = command_subparsers.add_parser('control', help='Control sequences')
 | 
					    parser_command_control = command_subparsers.add_parser('control', help='Control sequences')
 | 
				
			||||||
parser_command_control.set_defaults(func='control')
 | 
					    parser_command_control.set_defaults(func='control')
 | 
				
			||||||
parser_command_control.add_argument(
 | 
					    parser_command_control.add_argument(
 | 
				
			||||||
        '--ctl',
 | 
					        '--ctl',
 | 
				
			||||||
        help='Control sequence',
 | 
					        help='Control sequence',
 | 
				
			||||||
        choices=['LF', 'FF', 'CR', 'HT', 'VT'],
 | 
					        choices=['LF', 'FF', 'CR', 'HT', 'VT'],
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
parser_command_control.add_argument(
 | 
					    parser_command_control.add_argument(
 | 
				
			||||||
        '--pos',
 | 
					        '--pos',
 | 
				
			||||||
        help='Horizontal tab position (1-4)',
 | 
					        help='Horizontal tab position (1-4)',
 | 
				
			||||||
        type=int
 | 
					        type=int
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
parser_command_panel_buttons = command_subparsers.add_parser('panel_buttons', help='Disables panel buttons')
 | 
					    parser_command_panel_buttons = command_subparsers.add_parser('panel_buttons', help='Disables panel buttons')
 | 
				
			||||||
parser_command_panel_buttons.set_defaults(func='panel_buttons')
 | 
					    parser_command_panel_buttons.set_defaults(func='panel_buttons')
 | 
				
			||||||
parser_command_panel_buttons.add_argument(
 | 
					    parser_command_panel_buttons.add_argument(
 | 
				
			||||||
        '--enable',
 | 
					        '--enable',
 | 
				
			||||||
        help='Feed button enabled',
 | 
					        help='Feed button enabled',
 | 
				
			||||||
        type=bool,
 | 
					        type=bool,
 | 
				
			||||||
        required=True
 | 
					        required=True
 | 
				
			||||||
)
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    parser_command_demo = command_subparsers.add_parser('demo', help='Demonstrates various functions')
 | 
				
			||||||
 | 
					    parser_command_demo.set_defaults(func='demo')
 | 
				
			||||||
 | 
					    demo_group = parser_command_demo.add_mutually_exclusive_group()
 | 
				
			||||||
 | 
					    demo_group.add_argument(
 | 
				
			||||||
 | 
					        '--barcodes-a',
 | 
				
			||||||
 | 
					        help='Print demo barcodes for function type A',
 | 
				
			||||||
 | 
					        action='store_true',
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    demo_group.add_argument(
 | 
				
			||||||
 | 
					        '--barcodes-b',
 | 
				
			||||||
 | 
					        help='Print demo barcodes for function type B',
 | 
				
			||||||
 | 
					        action='store_true',
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    demo_group.add_argument(
 | 
				
			||||||
 | 
					        '--qr',
 | 
				
			||||||
 | 
					        help='Print some demo QR codes',
 | 
				
			||||||
 | 
					        action='store_true',
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    demo_group.add_argument(
 | 
				
			||||||
 | 
					        '--text',
 | 
				
			||||||
 | 
					        help='Print some demo text',
 | 
				
			||||||
 | 
					        action='store_true',
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if not printer:
 | 
					    if not printer:
 | 
				
			||||||
        raise Exception('No printers loaded from config')
 | 
					        raise Exception('No printers loaded from config')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Get only arguments actually passed
 | 
					    # Get only arguments actually passed
 | 
				
			||||||
args_dict = vars(parser.parse_args())
 | 
					    args_dict = vars(parser.parse_args())
 | 
				
			||||||
command_arguments = dict([k, v] for k, v in six.iteritems(args_dict) if v)
 | 
					    command_arguments = dict([k, v] for k, v in six.iteritems(args_dict) if v)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
target_command = command_arguments.pop('func')
 | 
					    target_command = command_arguments.pop('func')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# print command with args
 | 
					    if hasattr(printer, target_command):
 | 
				
			||||||
getattr(printer, target_command)(**command_arguments)
 | 
					        # print command with args
 | 
				
			||||||
 | 
					        getattr(printer, target_command)(**command_arguments)
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        command_arguments['printer'] = printer
 | 
				
			||||||
 | 
					        globals()[target_command](**command_arguments)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def demo(printer, **kwargs):
 | 
				
			||||||
 | 
					    for demo_choice in kwargs.keys():
 | 
				
			||||||
 | 
					        command = getattr(
 | 
				
			||||||
 | 
					            printer,
 | 
				
			||||||
 | 
					            demo_choice
 | 
				
			||||||
 | 
					            .replace('barcodes_a', 'barcode')
 | 
				
			||||||
 | 
					            .replace('barcodes_b', 'barcode')
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        for params in demo_functions[demo_choice]:
 | 
				
			||||||
 | 
					            command(**params)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    main()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user