application.app Module

Application main interface.

class wpull.application.app.Application(pipeline_series: wpull.pipeline.pipeline.PipelineSeries)[source]

Bases: wpull.application.hook.HookableMixin

Default non-interactive application user interface.

This class manages process signals and displaying warnings.

ERROR_CODE_MAP = OrderedDict([(<class 'wpull.errors.AuthenticationError'>, 6), (<class 'wpull.errors.ServerError'>, 8), (<class 'wpull.errors.ProtocolError'>, 7), (<class 'wpull.errors.SSLVerificationError'>, 5), (<class 'wpull.errors.DNSNotFound'>, 4), (<class 'wpull.errors.ConnectionRefused'>, 4), (<class 'wpull.errors.NetworkError'>, 4), (<class 'OSError'>, 3)])

Mapping of error types to exit status.

EXPECTED_EXCEPTIONS = (<class 'wpull.errors.ServerError'>, <class 'wpull.errors.ProtocolError'>, <class 'wpull.errors.SSLVerificationError'>, <class 'wpull.errors.DNSNotFound'>, <class 'wpull.errors.ConnectionRefused'>, <class 'wpull.errors.NetworkError'>, <class 'OSError'>, <class 'OSError'>, <class 'wpull.application.hook.HookStop'>, <class 'StopIteration'>, <class 'SystemExit'>, <class 'KeyboardInterrupt'>)

Exception classes that are not crashes.

class Event[source]

Bases: enum.Enum

Application.exit_code
Application.run()[source]
Application.run_sync() → int[source]

Run the application.

This function is blocking.

Returns:The exit status.
Return type:int
Application.setup_signal_handlers()[source]

Setup Ctrl+C and SIGTERM handlers.

Application.stop()[source]
Application.update_exit_code(code: int)[source]

Set the exit code if it is serious than before.

Parameters:code – The exit code.
class wpull.application.app.ApplicationState[source]

Bases: enum.Enum