'Send a GNTP notifications
.. warning::
Must have registered with growl beforehand or messages will be ignored
:param string noteType: One of the notification names registered earlier
:param string title: Notification title (usually displayed on the notification)
:param string description: The main content of the notification
:param string icon: Icon URL path
:param boolean sticky: Sticky notification
:param integer priority: Message priority level from -2 to 2
:param string callback:  URL callback
:param dict custom: Custom attributes. Key names should be prefixed with X-
according to the spec but this is not enforced by this class
.. warning::
For now, only URL callbacks are supported. In the future, the
callback argument will also support a function'

def notify(self, noteType, title, description, icon=None, sticky=False, priority=None, callback=None, identifier=None, custom={}):

    logger.info('Sending    notification    [%s]    to    %s:%s', noteType, self.hostname, self.port)
    assert (noteType in self.notifications)
    notice = gntp.core.GNTPNotice()
    notice.add_header('Application-Name', self.applicationName)
    notice.add_header('Notification-Name', noteType)
    notice.add_header('Notification-Title', title)
    if self.password:
        notice.set_password(self.password, self.passwordHash)
    if sticky:
        notice.add_header('Notification-Sticky', sticky)
    if priority:
        notice.add_header('Notification-Priority', priority)
    if icon:
        if self._checkIcon(icon):
            notice.add_header('Notification-Icon', icon)
        else:
            resource = notice.add_resource(icon)
            notice.add_header('Notification-Icon', resource)
    if description:
        notice.add_header('Notification-Text', description)
    if callback:
        notice.add_header('Notification-Callback-Target', callback)
    if identifier:
        notice.add_header('Notification-Coalescing-ID', identifier)
    for key in custom:
        notice.add_header(key, custom[key])
    self.add_origin_info(notice)
    self.notify_hook(notice)
    return self._send('notify', notice)
