class_docstr: Wrap an errno style error.
  
  Parameters
  ----------
  errno : int
      The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
      used.
  msg : string
      Description of the error or None.
class_docstr_tok: ["Wrap","an","errno","style","error",".","Parameters","--","--","--","--","--","errno",":","int","The","ZMQ","errno","or","None",".","If","None",",","then","``","zmq_errno","(",")","``","is","called","and","used",".","msg",":","string","Description","of","the","error","or","None","."]
docstr: Wrap an errno style error.
  
  Parameters
  ----------
  errno : int
      The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
      used.
  msg : string
      Description of the error or None.
docstr_tok: ["Wrap","an","errno","style","error",".","Parameters","--","--","--","--","--","errno",":","int","The","ZMQ","errno","or","None",".","If","None",",","then","``","zmq_errno","(",")","``","is","called","and","used",".","msg",":","string","Description","of","the","error","or","None","."]
code: def __init__(
      self, errno: Optional[int] = None, msg: Optional[str] = None
  ):
      """Wrap an errno style error.
  
      Parameters
      ----------
      errno : int
          The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
          used.
      msg : string
          Description of the error or None.
      """
      from zmq.backend import strerror, zmq_errno
  
      if errno is None:
          errno = zmq_errno()
      if isinstance(errno, int):
          self.errno = errno
          if msg is None:
              self.strerror = strerror(errno)
          else:
              self.strerror = msg
      else:
          if msg is None:
              self.strerror = str(errno)
          else:
              self.strerror = msg
  
imports: from errno import EINTR
  from typing import Optional, Tuple, Union
label_desc: Use image node_id 1 to create a new ZMQError object from inherited base classes: ZMQBaseError with example: obj = ZMQError(errno, msg)