diff --git a/src/escpos/escpos.py b/src/escpos/escpos.py index 8f5a37c..a679510 100644 --- a/src/escpos/escpos.py +++ b/src/escpos/escpos.py @@ -114,7 +114,7 @@ class Escpos(object): class. """ - device = None + _device = False def __init__(self, profile=None, magic_encode_args=None, **kwargs) -> None: """Initialize ESCPOS Printer. @@ -128,6 +128,22 @@ class Escpos(object): """Call self.close upon deletion.""" self.close() + @property + def device(self): + """Implements a self-open mechanism.""" + if self._device is False: + # Open device if not previously opened + self.open() + return self._device + + @device.setter + def device(self, new_device): + self._device = new_device + + def open(self): + """Open a printer device/connection.""" + pass + @abstractmethod def _raw(self, msg: bytes) -> None: """Send raw data to the printer.