Connections API Reference¶
Connection and client classes for GNTP communication.
See Core API Reference for the main documentation of these classes.
GNTP connection and client implementations.
This module provides synchronous connection handling and client logic for communicating with GNTP servers.
- class BaseGNTPConnection(final_callback=None, socket_callback=None)[source]¶
Bases:
objectAbstract base class for GNTP connections.
Defines the interface for GNTP server connections. Subclasses must implement write_message, read_message, and close methods.
- final_callback¶
Callback when connection completes
- socket_callback¶
Optional callback for socket events
- on_ok_message(message)[source]¶
Handle -OK response from server.
- Parameters:
message (bytes) – Response message bytes
- on_callback_message(message)[source]¶
Handle -CALLBACK response from server.
- Parameters:
message (bytes) – Callback message bytes
- write_message(message)[source]¶
Send message to server.
Subclasses must implement this method.
- Parameters:
message (bytes) – Message bytes to send
- class GNTPConnection(address, timeout, final_callback=None, socket_callback=None)[source]¶
Bases:
BaseGNTPConnectionSynchronous GNTP connection implementation.
Provides blocking socket communication with GNTP server.
- sock¶
TCP socket connection
- __init__(address, timeout, final_callback=None, socket_callback=None)[source]¶
Initialize GNTP connection.
- write_message(message)[source]¶
Send message to GNTP server.
- Parameters:
message (bytes) – Message bytes to send
- Raises:
GNTPConnectionError – If send fails
- read_message(callback)[source]¶
Read message from server and call callback.
- Parameters:
callback (Callable[[bytes], None]) – Function to call with received message
- Raises:
GNTPConnectionError – If read fails
- class GNTPClient(host='localhost', port=23053, timeout=10.0, password=None, key_hashing=None, encryption=None, connection_class=None)[source]¶
Bases:
objectSynchronous GNTP client.
Handles request processing with optional authentication and encryption.
- address¶
(host, port) of GNTP server
- timeout¶
Connection timeout in seconds
- connection_class¶
Connection class to use
- packer_factory¶
Factory for creating message packers
- __init__(host='localhost', port=23053, timeout=10.0, password=None, key_hashing=None, encryption=None, connection_class=None)[source]¶
Initialize GNTP client.
- Parameters:
host (str) – GNTP server hostname
port (int) – GNTP server port
timeout (float) – Connection timeout in seconds
password (str | None) – Optional password for authentication
key_hashing (Algorithm | None) – Key hashing algorithm (default: SHA256)
encryption (Algorithm | None) – Optional encryption algorithm
connection_class (type | None) – Connection class (default: GNTPConnection)
- Raises:
GNTPError – If encryption key size is too large for hashing
Example
>>> from gntplib import keys, ciphers >>> client = GNTPClient( ... host='localhost', ... password='secret', ... key_hashing=keys.SHA256, ... encryption=ciphers.AES ... )
- process_request(request, callback=None, **kwargs)[source]¶
Process a GNTP request.
Serializes the request, sends it to the server, and handles the response.
- Parameters:
Example
>>> from gntplib import RegisterRequest, Event >>> request = RegisterRequest('MyApp', None, [Event('test')]) >>> client.process_request(request)