Gets the notification session for notifications pertaining to
        asset changes.

        arg:    asset_receiver (osid.repository.AssetReceiver): the
                notification callback
        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.AssetNotificationSession) - an
                AssetNotificationSession
        raise:  NullArgument - asset_receiver is null
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_asset_notification() is false
        compliance: optional - This method must be implemented if
                    supports_asset_notification() is true.

def get_asset_notification_session(self, asset_receiver, proxy):
        """Gets the notification session for notifications pertaining to
        asset changes.

        arg:    asset_receiver (osid.repository.AssetReceiver): the
                notification callback
        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.AssetNotificationSession) - an
                AssetNotificationSession
        raise:  NullArgument - asset_receiver is null
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_asset_notification() is false
        compliance: optional - This method must be implemented if
                    supports_asset_notification() is true.

        """
        if asset_receiver is None:
            raise NullArgument()
        if not self.supports_asset_notification():
            raise Unimplemented()
        try:
            from . import sessions
        except ImportError:
            raise  # OperationFailed()
        proxy = self._convert_proxy(proxy)
        try:
            session = sessions.AssetNotificationSession(asset_receiver, proxy, runtime=self._runtime)
        except AttributeError:
            raise  # OperationFailed()
        return session