masterhead

This sections contains module documentation of masterhead module.

masterhead

Module provides class MasterHead inherited from PropertyHead, ServiceHead, CoreHead, ModuleLoader. Unit tests available at hydratk/core/masterhead/01_methods_ut.jedi, 02_methods_ut.jedi, 03_methods_ut.jedi, 04_methods_ut.jedi, 05_methods_ut.jedi

Attributes :

  • _instance - MasterHead reference
  • _instance_created - bool

Methods :

  • __init__

Method prevents to create MasterHead instance using constructor (Singleton pattern). It can be created using method get_head. It registers functionality hooks and overrides standard exception handler sys.excepthook.

  • exception_handler

Method fires event htk_on_uncaught_exception with traceback content.

  • get_translator

Method returns _trn.

  • get_head

Method returns MasterHead reference and creates it when not initialized. It is static method because __init__usage is not allowed.

  • get_config

Method returns _config.

  • check_run_mode

Method sets _run_mode according to option run-mode.

  • check_language

Method sets _language according to option language.

  • check_config

Method sets _config_file according to option config.

  • check_profile

Method enables profiler if option profile is provided.

  • Method sets _debug, _debug_level according to option debug.
  • check_debug_channel

Method sets _debug_channel according to option debug-channel.

  • match_short_option

Method registers short command option or list for given group (including has_value, d_opt, allow_multiple).

  • match_long_option

Method registers long command option or list for given group (including has_value, d_opt, allow_multiple).

  • match_cli_option

Method registers both long and short command option. It can be used to create option aliases for one target option.

  • match_cli_command

Method registers command for given group.

  • set_cli_cmdopt_profile

Method sets new option profile. The profile is empty and options must be registered separately.

  • set_cli_appl_title

Method sets _help_title, _cp_string.

  • register_fn_hook

Method registers functionality hook in _fn_hooks with given callback.

mh.register_fn_hook('mh_bootstrap', my_bootstrapper)
  • run_fn_hook

Method executes functionality hook callback if registered. Parameters are passed as args, kwargs.

  • dummy_fn_hook

Dummy callback returning allways True.

  • start_pp_app

Method calls _start_app, used in parallel mode.

  • stop_pp_app

Method calls _stop_app, used in parallel mode.

  • register_command_hook

Method registers command hook in _cmd_hooks with given callback.

mh.register_command_hook('mycommand4', fc_command_handler)
  • register_command_option_hook

Method registers option hook in _cmd_option_hooks with given callback.

  • register_event_hook

Method registers event hook in _event_hooks with given callback. The event can have priority for processing order.

hook = [
        {'event' : 'htk_on_error', 'callback' : self.my_error_handler, 'unpack_args' : True, 'priority' : const.EVENT_HOOK_PRIORITY - 1}, # will be prioritized
        {'event' : 'htk_on_warning', 'callback' : self.my_warning_handler, 'unpack_args' : False}
       ]

mh.register_event_hook(hook)
  • unregister_event_hook

Method removes given event from _event_hooks.

  • replace_event_hook

Method replaces event hook configuration.

  • fire_event

Method fires requested event. By default it fires also events ^event, $event (before and after). If event is registered in hooks method automatically executes callback.

  • apply_command_options

Method sets _debug, _debug_level, _language according to options debug, language.

  • get_language

Method returns _language.

  • have_command_action

Method checks if _command is set.

  • get_command_action

Method returns _command.

  • service_registered

Method checks if service is register in _app_service.

  • register_service

Method registers new service if not already registered and initializes service process.

  • start_service

Method starts process for given service if not running.

  • stop_services

Method sends INT signal to all running service processes. If service not stopped method sends KILL signal.

  • init_core_threads

Method initializes worker process pool (by default 4 processes).

  • destroy_core_threads

Method terminates worker processes in pool using status.

  • add_core_thread

Method initializes and starts worker process. It is connected with observer process via pipe.

  • get_thrid

Method returns process name (0 is main process).

  • create_ext_skel

Method handles command create-ext-skel and creates extension skeleton in directory ~/hydratk by default. The path can be specified in option ext-skel-path. It creates all directories and files configured in module template (including file content). Method supports interactive mode it prompts for metadata (installation directory, extension name, description, author, email, license).

  • create_lib_skel

Method handles command create-lib-skel and creates libraru skeleton in directory ~/hydratk by default. The path can be specified in option lib-skel-path. It creates all directories and files configured in module template (including file content). Method supports interactive mode it prompts for metadata (installation directory, library name, description, author, email, license).

  • async_fn_ex

Method sends message with asynchronous functionality hook.

  • send_msg

Method sends message to queue.

  • async_ext_fn

Method sends message with asynchronous extension hook.

  • get_async_ticket_content

Method gets given ticket from storage.

  • async_ticket_completed

Method checks if given ticket is completed (already processed).

  • delete_async_ticket

Method deletes given ticket from storage.

  • register_async_fn_ex

Method registers asynchronous functionality hook in _async_fn_ex with given callback.

  • reg_fn_cb

Method registers functionality callback in _fn_callback.

  • register_async_fn

Method registers asynchronous functionality hook in _async_fn.

  • get_ext

Method returns returns reference to given extension.