mirror of
				https://github.com/python-escpos/python-escpos
				synced 2025-10-23 09:30:00 +00:00 
			
		
		
		
	Merge branch 'development' into development
This commit is contained in:
		@@ -38,7 +38,7 @@ else:
 | 
			
		||||
if full_load:
 | 
			
		||||
    logger.debug('Loading and pickling capabilities')
 | 
			
		||||
    with open(capabilities_path) as cp, open(pickle_path, 'wb') as pp:
 | 
			
		||||
        CAPABILITIES = yaml.load(cp)
 | 
			
		||||
        CAPABILITIES = yaml.safe_load(cp)
 | 
			
		||||
        pickle.dump(CAPABILITIES, pp, protocol=2)
 | 
			
		||||
 | 
			
		||||
logger.debug('Finished loading capabilities took %.2fs', time.time() - t0)
 | 
			
		||||
 
 | 
			
		||||
@@ -68,19 +68,24 @@ class Usb(Escpos):
 | 
			
		||||
        self.idVendor = self.device.idVendor
 | 
			
		||||
        self.idProduct = self.device.idProduct
 | 
			
		||||
 | 
			
		||||
        check_driver = None
 | 
			
		||||
        # pyusb has three backends: libusb0, libusb1 and openusb but
 | 
			
		||||
        # only libusb1 backend implements the methods is_kernel_driver_active()
 | 
			
		||||
        # and detach_kernel_driver().
 | 
			
		||||
        # This helps enable this library to work on Windows.
 | 
			
		||||
        if self.device.backend.__module__.endswith("libusb1"):
 | 
			
		||||
            check_driver = None
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            check_driver = self.device.is_kernel_driver_active(0)
 | 
			
		||||
        except NotImplementedError:
 | 
			
		||||
            pass
 | 
			
		||||
 | 
			
		||||
        if check_driver is None or check_driver:
 | 
			
		||||
            try:
 | 
			
		||||
                self.device.detach_kernel_driver(0)
 | 
			
		||||
            except usb.core.USBError as e:
 | 
			
		||||
                if check_driver is not None:
 | 
			
		||||
                    print("Could not detatch kernel driver: {0}".format(str(e)))
 | 
			
		||||
                check_driver = self.device.is_kernel_driver_active(0)
 | 
			
		||||
            except NotImplementedError:
 | 
			
		||||
                pass
 | 
			
		||||
 | 
			
		||||
            if check_driver is None or check_driver:
 | 
			
		||||
                try:
 | 
			
		||||
                    self.device.detach_kernel_driver(0)
 | 
			
		||||
                except usb.core.USBError as e:
 | 
			
		||||
                    if check_driver is not None:
 | 
			
		||||
                        print("Could not detatch kernel driver: {0}".format(str(e)))
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            self.device.set_configuration()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user