mokr.utils.remote ================= .. py:module:: mokr.utils.remote Attributes ---------- .. autoapisummary:: mokr.utils.remote.LOGGER Functions --------- .. autoapisummary:: mokr.utils.remote.format_javascript_exception mokr.utils.remote.add_event_listener mokr.utils.remote.remove_event_listeners mokr.utils.remote.serialize_remote_object mokr.utils.remote.release_remote_object mokr.utils.remote.is_javascript_method Module Contents --------------- .. py:data:: LOGGER .. py:function:: format_javascript_exception(exception_details: dict) -> str Get and format a JavaScript exception message. :param exception_details: An "exceptionDetails" object loaded as a dictionary. :type exception_details: dict :returns: Formatted exception as string. :rtype: str .. py:function:: add_event_listener(emitter: pyee.EventEmitter, event_name: str, handler: Callable) -> dict[str, Any] Add an event `handler` to an `emitter` for a given `event_name`. :param emitter: Emitter to listen on. :type emitter: EventEmitter :param event_name: Event name to listen for. :type event_name: str :param handler: Handler callback to run when event is emitted. :type handler: Callable :returns: A dictionary representation of the listener. :rtype: dict[str, Any] .. py:function:: remove_event_listeners(listeners: list[dict]) -> None Remove all event listeners given from their emitters. :param listeners: A list of listeners in dictionary form, as returned by `mokr.utils.remote.add_event_listener`. :type listeners: list[dict] .. py:function:: serialize_remote_object(remote_object: dict) -> Any Transform a remote JavaScript object's "value" to a Python equivalent. :param remote_object: The remote JavaScript object to serialise. :type remote_object: dict :raises ElementHandleError: Raised if the `remote_object` has an "objectId" :raises (is not a primitive object) or if an unhandled case is encountered: :raises when checking `remote_object["unserializableValue"]`.: :returns: Python representation of remote object. May be str, int, dict, list, etc. Some `remote_object["unserializableValue"]`s will be transformed into equivalents including "Nan" to None, "-0" to 0, "Infinity" to `math.inf`, and "-Infinity" to `-math.inf`. :rtype: Any .. py:function:: release_remote_object(client: mokr.connection.DevtoolsConnection, remote_object: dict) -> Awaitable Release a given `remote_object` so that it is no longer referenced by the browser and can be garbage collected. Ignores all exceptions raised when sending request to devtools session. :param client: A `mokr.connection.DevtoolsConnection`. :type client: DevtoolsConnection :param remote_object: A remote object as dictionary. :type remote_object: dict :returns: Awaitable that yields None. :rtype: Awaitable .. py:function:: is_javascript_method(method: str) -> bool Casually check if string is a JavaScript method. :param method: String to check. :type method: str :returns: True if deemed to be a method, else False. :rtype: bool