'Retrieve information about the file at *path* on the *service_name*.
:param string/unicode service_name: the name of the shared folder for the *path*
:param string/unicode path: Path of the file on the remote server. If the file cannot be opened for reading, an :doc:`OperationFailure<smb_exceptions>` will be raised.
:return: A :doc:`smb.base.SharedFile<smb_SharedFile>` instance containing the attributes of the file.'

def getAttributes(self, service_name, path, timeout=30):

    if (not self.sock):
        raise NotConnectedError('Not    connected    to    server')
    results = []
    def cb(info):
        self.is_busy = False
        results.append(info)
    def eb(failure):
        self.is_busy = False
        raise failure
    self.is_busy = True
    try:
        self._getAttributes(service_name, path, cb, eb, timeout)
        while self.is_busy:
            self._pollForNetBIOSPacket(timeout)
    finally:
        self.is_busy = False
    return results[0]
