code: def socket(type, filename, line_nbr):
          
          return c_void_p(lib.zsys_socket(type, filename, line_nbr))
docs: Get a new ZMQ socket, automagically creating a ZMQ context if this is
  the first time. Caller is responsible for destroying the ZMQ socket
  before process exits, to avoid a ZMQ deadlock. Note: you should not use
  this method in CZMQ apps, use zsock_new() instead.
  *** This is for CZMQ internal use only and may change arbitrarily ***