Requests API Reference¶
Request and Response classes for GNTP protocol communication.
Request Classes¶
BaseRequest¶
- class BaseRequest(custom_headers=None, app_specific_headers=None)[source]¶
Bases:
objectBase class for GNTP requests.
All GNTP requests inherit from this class and must define a message_type.
- custom_headers¶
List of (key, value) tuples for custom headers
- app_specific_headers¶
List of (key, value) tuples for app headers
RegisterRequest¶
- class RegisterRequest(app_name, app_icon, events, custom_headers=None, app_specific_headers=None)[source]¶
Bases:
BaseRequestREGISTER request for registering an application.
This request must be sent before notifications can be published. It registers the application and defines available notification types.
- app_name¶
Application name
- app_icon¶
Optional application icon
- events¶
List of Event definitions
Example
from gntplib.requests import RegisterRequest from gntplib import Event, Resource events = [Event('update', 'Update Available')] icon = Resource.from_file('app.png') request = RegisterRequest('MyApp', icon, events)
- __init__(app_name, app_icon, events, custom_headers=None, app_specific_headers=None)[source]¶
Initialize REGISTER request.
- Parameters:
app_name (str) – Name of the application
app_icon (Resource | None) – Optional icon resource for the application
events (List[Event]) – List of notification event definitions
custom_headers (List[Tuple[str, Any]] | None) – Custom X- headers
app_specific_headers (List[Tuple[str, Any]] | None) – App Data- headers
Example
>>> from gntplib import Event, Resource >>> events = [Event('update', 'Update Available')] >>> icon = Resource.from_file('app_icon.png') >>> request = RegisterRequest('MyApp', icon, events)
NotifyRequest¶
- class NotifyRequest(app_name, notification, custom_headers=None, app_specific_headers=None)[source]¶
Bases:
BaseRequestNOTIFY request for sending a notification.
Sends an individual notification to the GNTP server. The application must be registered first.
- app_name¶
Application name (must match registered name)
- notification¶
Notification instance to send
Example
from gntplib.requests import NotifyRequest from gntplib.models import Notification notification = Notification('update', 'New Version', 'v2.0 released') request = NotifyRequest('MyApp', notification)
SubscribeRequest¶
- class SubscribeRequest(id_, name, port, custom_headers=None, app_specific_headers=None)[source]¶
Bases:
BaseRequestSUBSCRIBE request for subscribing to notifications.
Allows a client to subscribe to receive notifications from a hub.
- id_¶
Unique subscriber identifier
- name¶
Subscriber name
- port¶
Port number for receiving notifications
Response Class¶
- class Response(message_type, headers)[source]¶
Bases:
objectGNTP response from server.
Represents the response received from a GNTP server after sending a request.
- message_type¶
Response type (-OK, -ERROR, -CALLBACK)
- headers¶
Dictionary of response headers
Methods
- is_ok()[source]
Check if response is successful.
- Returns:
True if response type is -OK
- Return type:
- is_error()[source]
Check if response is an error.
- Returns:
True if response type is -ERROR
- Return type:
- is_callback()[source]
Check if response is a callback.
- Returns:
True if response type is -CALLBACK
- Return type:
- get_header(name, default=None)[source]
Get header value with optional default.
- __init__(message_type, headers)[source]¶
Initialize response.
- Parameters:
- Raises:
GNTPResponseError – If response indicates an error
Example
>>> response = Response('-OK', {'Response-Action': 'REGISTER'})
- is_ok()[source]¶
Check if response is successful.
- Returns:
True if response type is -OK
- Return type:
- is_error()[source]¶
Check if response is an error.
- Returns:
True if response type is -ERROR
- Return type:
- is_callback()[source]¶
Check if response is a callback.
- Returns:
True if response type is -CALLBACK
- Return type:
Utility Functions¶
- parse_response(message, expected_type=None)[source]¶
Parse GNTP response message.
- Parameters:
- Returns:
Response instance
- Raises:
GNTPProtocolError – If response format is invalid
GNTPResponseError – If response indicates an error
- Return type:
Example
>>> response = parse_response(b'GNTP/1.0 -OK NONE\r\n...')