konnect.curl.abc module
Abstract protocols which may be implemented by users
curl provides simple implementations of these protocols which may be used directly
or subclassed by users.
- class ConfigHandle(*args, **kwargs)[source]
Bases:
ProtocolThe interface provided by objects passed to
RequestProtocol.configure_handle()- setopt(option: int, value: object, /) None[source]
Set an option on a Curl handle
See https://curl.se/libcurl/c/curl_easy_setopt.html for a list of options and what they do.
- pause(state: int, /) None[source]
Set the paused state of a Curl handle
This is provided for request implementations that need to await upload data, they may store the handle or method for later use. In a future release it will be deprecated in favour of a method that returns an asynchronously writable object.
- class GetInfoHandle(*args, **kwargs)[source]
Bases:
ProtocolThe interface provided by objects passed to
RequestProtocol.completed()- getinfo(option: int, /) object[source]
Return information about a Curl handle
Note that string values are returned as unicode strings.
See https://curl.se/libcurl/c/curl_easy_getinfo.html for a list of options and what they return.
- getinfo_raw(option: int, /) object[source]
Like
GetInfoHandle.getinfo()but string values are returned as byte strings
- class RequestProtocol(*args, **kwargs)[source]
Bases:
Protocol[konnect.curl.abc.U_co,konnect.curl.abc.R_co]Request classes that are passed to Multi.process() must implement this protocol
- configure_handle(handle: konnect.curl.abc.ConfigHandle, /) None[source]
Configure a Curl handle for the request by calling
ConfigHandlemethodsSee https://curl.se/libcurl/c/curl_easy_setopt.html for a list of options and what they do.
- has_update() bool[source]
Return whether calling
RequestProtocol.get_update()will return a value or raiseLookupError
- get_update() konnect.curl.abc.U_co[source]
Return a waiting update or raise
LookupErrorif there is noneMulti.process() will only call this method when
RequestProtocol.has_update()indicates an update is available. The returned value will be returned by Multi.process().Note that values returned by this method are interim updates, and Multi.process() will be called again with the current request. It is up to the implementer how many times updates will be returned and what objects to return as updates: it may be different objects for different stages of a transfer; or there may never be interim updates.
- completed(handle: konnect.curl.abc.GetInfoHandle, /) konnect.curl.abc.R_co[source]
Indicate that Curl has completed processing the handle and return a final response
Like
RequestProtocol.get_updatethis method’s return value will be returned by Multi.process(). UnlikeRequestProtocol.get_updatethis method will be called exactly once for a successful transfer.The
GetInfoHandlepassed as a positional argument may be used to get post-completion information about a transfer, see https://curl.se/libcurl/c/curl_easy_getinfo.html for a list of options and what they return.