Failure

'base_loom_server.base_loom_server' not found in 'with allow_reconnection'.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer] class [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer](*, num_shafts: int, serial_port: str, reset_db: bool, verbose: bool, db_path: pathlib.Path | None = None, allow_reconnection: bool = False)

Base class for a web server that controls a dobby loom.

Subclasses should not only provide implementations for the abstract methods, but should also override the class constants, as appropriate.

Parameters

  • num_shafts : int The number of shafts the loom has.

  • serial_port : str The name of the serial port, e.g. "/dev/tty0". If the name is "mock" then use a mock loom.

  • reset_db : bool If True, delete the old database and create a new one.

  • verbose : bool If True, log diagnostic information.

  • db_path : pathlib.Path | None Path to the pattern database. Specify None for the default path. Unit tests specify a non-None value, to avoid stomping on the real database.

  • allow_reconnection : bool Reconnect to the loom if the client connection is dropped? Specify True for physical USB ports, but if you are connecting a virual USB port, then only specify True if you have verified it works.

Attributes

  • enable_software_direction : bool Is software direction control enabled?

  • thread_low_to_high : bool Return True if threading (or unthreading) is currently low to high.

  • loom_connected : bool Return True if connected to the loom.

Methods

  • [handle_loom_reply][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.handle_loom_reply] Process one reply from the loom.

  • [write_shafts_to_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_shafts_to_loom] Write the shaft word to the loom.

  • [start][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.start] Run asynchronous startup tasks.

  • [close][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.close] Disconnect from client and loom and stop all tasks.

  • [add_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.add_pattern] Add a pattern to pattern database.

  • [close_websocket][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.close_websocket] Close a websocket using best effort and a short timeout.

  • [get_initial_loom_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.get_initial_loom_state] Obtain the loom state.

  • [connect_to_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.connect_to_loom] Connect to the loom and start the read loom task.

  • [run_client][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.run_client] Run a client connection, closing any existing connection.

  • [disconnect_client][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.disconnect_client] Disconnect the current client, if any.

  • [disconnect_from_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.disconnect_from_loom] Disconnect the loom. A no-op if already disconnected.

  • [basic_read_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.basic_read_loom] Read one reply from the loom.

  • [clear_jump_end][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jump_end] Clear self.jump_end and report value if changed or force_output.

  • [clear_jump_pick][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jump_pick] Clear self.jump_pick and report value if changed or force_output.

  • [clear_jumps][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jumps] Clear all jumps and report values if changed or force_output.

  • [cmd_clear_pattern_names][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_clear_pattern_names] Handle the clear_pattern_names command.

  • [cmd_direction][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_direction] Handle the direction command: set direction.

  • [cmd_jump_to_end][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_jump_to_end] Handle the jump_to_end command.

  • [cmd_jump_to_pick][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_jump_to_pick] Handle the jump_to_pick command.

  • [cmd_mode][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_mode] Handle the mode command: set the mode.

  • [cmd_select_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_select_pattern] Handle the select_pattern command.

  • [cmd_separate_threading_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_separate_threading_repeats] Handle the separate_threading_repeats command.

  • [cmd_separate_weaving_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_separate_weaving_repeats] Handle the separate_weaving_repeats command.

  • [cmd_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_settings] Handle the settings command: set one or more settings.

  • [cmd_thread_group_size][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_thread_group_size] Handle the thread_group_size command.

  • [cmd_oobcommand][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_oobcommand] Handle the oob_command command.

  • [cmd_upload][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_upload] Handle the upload command.

  • [get_threading_shaft_word][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.get_threading_shaft_word] Get the current threading shaft word.

  • [handle_next_pick_request][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.handle_next_pick_request] Handle next pick request from loom.

  • [increment_pick_number][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.increment_pick_number] Increment pick_number in the current direction.

  • [increment_end_number][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.increment_end_number] Increment end_number0 in the current direction.

  • [load_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.load_settings] Read the settings file, if it exists.

  • [read_client_loop][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.read_client_loop] Read and process commands from the client.

  • [read_loom_loop][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.read_loom_loop] Read and process replies from the loom.

  • [report_command_done][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_command_done] Report completion of a command.

  • [report_command_problem][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_command_problem] Report a CommandProblem to the client.

  • [report_current_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_pattern] Report pattern to the client.

  • [report_initial_server_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_initial_server_state] Report server state.

  • [report_loom_connection_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_loom_connection_state] Report LoomConnectionState to the client.

  • [report_pattern_names][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_pattern_names] Report PatternNames to the client.

  • [report_current_pick_number][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_pick_number] Report CurrentPickNumber to the client.

  • [report_current_end_numbers][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_end_numbers] Report CurrentEndNumber to the client.

  • [report_jump_end][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_jump_end] Report JumpEndNumber to the client.

  • [report_jump_pick][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_jump_pick] Report JumpPickNumber to the client.

  • [report_shaft_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_shaft_state] Report ShaftState to the client.

  • [report_mode][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_mode] Report the current mode to the client.

  • [report_separate_threading_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_separate_threading_repeats] Report SeparateThreadingRepeats.

  • [report_separate_weaving_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_separate_weaving_repeats] Report SeparateWeavingRepeats.

  • [report_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_settings] Report Settings.

  • [report_status_message][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_status_message] Report a status message to the client.

  • [report_thread_group_size][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_thread_group_size] Report ThreadGroupSize.

  • [report_language_names][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_language_names] Report LanguageNames.

  • [report_direction][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_direction] Report Direction.

  • [reset_database][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.reset_database] Reset the pattern database (write a new one).

  • [save_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.save_settings] Save the settings file.

  • [select_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.select_pattern] Select the specified pattern.

  • [t][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.t] Translate a phrase, if possible.

  • [write_to_client][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_to_client] Send a reply to the client.

  • [write_to_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_to_loom] Send data to the loom.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.handle_loom_reply] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[handle_loom_reply][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.handle_loom_reply](self, reply_bytes: bytes)None

Process one reply from the loom.

Raises

  • NotImplementedError

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_shafts_to_loom] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[write_shafts_to_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_shafts_to_loom](self, shaft_word: int)None

Write the shaft word to the loom.

Raises

  • NotImplementedError

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.enable_software_direction] property [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[enable_software_direction][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.enable_software_direction]: bool

Is software direction control enabled?

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.thread_low_to_high] property [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[thread_low_to_high][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.thread_low_to_high]: bool

Return True if threading (or unthreading) is currently low to high.

Takes into account settings and self.direction_forward.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.loom_connected] property [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[loom_connected][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.loom_connected]: bool

Return True if connected to the loom.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.start] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[start][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.start](self)None

Run asynchronous startup tasks.

Initialize the pattern database and connect to the loom.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.close] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[close][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.close](self, *, stop_read_loom: bool = True, stop_read_client: bool = True)None

Disconnect from client and loom and stop all tasks.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.add_pattern] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[add_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.add_pattern](self, pattern: ReducedPattern)None

Add a pattern to pattern database.

Also purge the MAX_PATTERNS oldest entries (excluding the current pattern, if any) and report the new list of pattern names to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.close_websocket] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[close_websocket][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.close_websocket](self, ws: WebSocket, code: [CloseCode][mkapi.base_loom_server.base_loom_server with allow_reconnection.CloseCode] = [CloseCode][mkapi.base_loom_server.base_loom_server with allow_reconnection.CloseCode].[NORMAL][mkapi.base_loom_server.base_loom_server with allow_reconnection.CloseCode.NORMAL], reason: str = '')None

Close a websocket using best effort and a short timeout.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.get_initial_loom_state] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[get_initial_loom_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.get_initial_loom_state](self)None

Obtain the loom state.

Called just after the server connects to the loom.

Usually a no-op, because a well designed loom automatically reports its own state when software connects to it.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.connect_to_loom] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[connect_to_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.connect_to_loom](self)None

Connect to the loom and start the read loom task.

If already connected to loom, and allow_reconnection is true, disconnect first, since connecting again may indicate that something is wrong.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.run_client] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[run_client][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.run_client](self, websocket: WebSocket)None

Run a client connection, closing any existing connection.

Also open a connection to the loom, if that was closed.

Parameters

  • websocket : WebSocket Connection to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.disconnect_client] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[disconnect_client][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.disconnect_client](self)None

Disconnect the current client, if any.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.disconnect_from_loom] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[disconnect_from_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.disconnect_from_loom](self)None

Disconnect the loom. A no-op if already disconnected.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.basic_read_loom] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[basic_read_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.basic_read_loom](self)bytes

Read one reply from the loom.

Perform no error checking, except that self.loom_reader exists.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jump_end] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[clear_jump_end][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jump_end](self, *, force_output: bool = False)None

Clear self.jump_end and report value if changed or force_output.

Parameters

  • force_output : bool If true, report JumpEndNumber, even if it has not changed.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jump_pick] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[clear_jump_pick][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jump_pick](self, *, force_output: bool = False)None

Clear self.jump_pick and report value if changed or force_output.

Parameters

  • force_output : bool If true, report JumpPickNumber, even if it has not changed.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jumps] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[clear_jumps][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.clear_jumps](self, *, force_output: bool = False)None

Clear all jumps and report values if changed or force_output.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_clear_pattern_names] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_clear_pattern_names][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_clear_pattern_names](self, command: SimpleNamespace)None

Handle the clear_pattern_names command.

Clear all patterns except the current pattern.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_direction] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_direction][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_direction](self, command: SimpleNamespace)None

Handle the direction command: set direction.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_jump_to_end] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_jump_to_end][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_jump_to_end](self, command: SimpleNamespace)None

Handle the jump_to_end command.

Raises

  • [CommandError][mkapi.base_loom_server.base_loom_server with allow_reconnection.CommandError]

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_jump_to_pick] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_jump_to_pick][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_jump_to_pick](self, command: SimpleNamespace)None

Handle the jump_to_pick command.

Raises

  • [CommandError][mkapi.base_loom_server.base_loom_server with allow_reconnection.CommandError]

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_mode] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_mode][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_mode](self, command: SimpleNamespace)None

Handle the mode command: set the mode.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_select_pattern] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_select_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_select_pattern](self, command: SimpleNamespace)None

Handle the select_pattern command.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_separate_threading_repeats] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_separate_threading_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_separate_threading_repeats](self, command: SimpleNamespace)None

Handle the separate_threading_repeats command.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_separate_weaving_repeats] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_separate_weaving_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_separate_weaving_repeats](self, command: SimpleNamespace)None

Handle the separate_weaving_repeats command.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_settings] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_settings](self, command: SimpleNamespace)None

Handle the settings command: set one or more settings.

Raises

  • [CommandError][mkapi.base_loom_server.base_loom_server with allow_reconnection.CommandError]

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_thread_group_size] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_thread_group_size][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_thread_group_size](self, command: SimpleNamespace)None

Handle the thread_group_size command.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_oobcommand] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_oobcommand][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_oobcommand](self, command: SimpleNamespace)None

Handle the oob_command command.

Send an out-of-band command to the mock loom. Ignored with a logged warning if the loom is not the mock loom.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_upload] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[cmd_upload][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.cmd_upload](self, command: SimpleNamespace)None

Handle the upload command.

Raises

  • [CommandError][mkapi.base_loom_server.base_loom_server with allow_reconnection.CommandError]

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.get_threading_shaft_word] method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[get_threading_shaft_word][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.get_threading_shaft_word]()int

Get the current threading shaft word.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.handle_next_pick_request] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[handle_next_pick_request][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.handle_next_pick_request](self)bool

Handle next pick request from loom.

Call this from handle_loom_reply.

Figure out the next pick, send it to the loom, and report the current pick or end numbers to the client (if we were not at the beginning of the work).

Returns

  • [did_advance][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.handle_next_pick_request.did_advance] True if the loom was sent the next set of shafts. False if in Setting mode, or no current pattern, or attemped to go beyond the start of the pattern.

Raises

  • RuntimeError

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.increment_pick_number] method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[increment_pick_number][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.increment_pick_number]()int

Increment pick_number in the current direction.

Increment pick_repeat_number as well, if appropriate.

Return the new pick number. This will be 0 if pick_repeat_number changed, or if unweaving and pick_repeat_number would be decremented to 0.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.increment_end_number] method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[increment_end_number][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.increment_end_number]()None

Increment end_number0 in the current direction.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.load_settings] method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[load_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.load_settings]()None

Read the settings file, if it exists.

Usable entries will replace the values in self.settings (which must already be set to a valid value). Unusable entries will be ignored, with a logged warning.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.read_client_loop] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[read_client_loop][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.read_client_loop](self)None

Read and process commands from the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.read_loom_loop] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[read_loom_loop][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.read_loom_loop](self)None

Read and process replies from the loom.

Raises

  • RuntimeError

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_command_done] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_command_done][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_command_done](self, *, cmd_type: str, success: bool, message: str = '')None

Report completion of a command.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_command_problem] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_command_problem][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_command_problem](self, message: str, severity: MessageSeverityEnum)None

Report a CommandProblem to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_pattern] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_current_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_pattern](self)None

Report pattern to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_initial_server_state] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_initial_server_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_initial_server_state](self)None

Report server state.

Called just after a client connects to the server.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_loom_connection_state] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_loom_connection_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_loom_connection_state](self, reason: str = '')None

Report LoomConnectionState to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_pattern_names] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_pattern_names][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_pattern_names](self)None

Report PatternNames to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_pick_number] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_current_pick_number][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_pick_number](self)None

Report CurrentPickNumber to the client.

Also update pick information in the database.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_end_numbers] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_current_end_numbers][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_current_end_numbers](self)None

Report CurrentEndNumber to the client.

Also update threading information the database.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_jump_end] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_jump_end][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_jump_end](self)None

Report JumpEndNumber to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_jump_pick] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_jump_pick][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_jump_pick](self)None

Report JumpPickNumber to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_shaft_state] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_shaft_state][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_shaft_state](self)None

Report ShaftState to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_mode] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_mode][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_mode](self)None

Report the current mode to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_separate_threading_repeats] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_separate_threading_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_separate_threading_repeats](self)None

Report SeparateThreadingRepeats.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_separate_weaving_repeats] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_separate_weaving_repeats][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_separate_weaving_repeats](self)None

Report SeparateWeavingRepeats.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_settings] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_settings](self)None

Report Settings.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_status_message] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_status_message][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_status_message](self, message: str, severity: MessageSeverityEnum)None

Report a status message to the client.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_thread_group_size] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_thread_group_size][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_thread_group_size](self)None

Report ThreadGroupSize.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_language_names] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_language_names][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_language_names](self)None

Report LanguageNames.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_direction] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[report_direction][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.report_direction](self)None

Report Direction.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.reset_database] method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[reset_database][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.reset_database]()None

Reset the pattern database (write a new one).

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.save_settings] method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[save_settings][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.save_settings]()None

Save the settings file.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.select_pattern] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[select_pattern][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.select_pattern](self, name: str)None

Select the specified pattern.

Raises

  • [CommandError][mkapi.base_loom_server.base_loom_server with allow_reconnection.CommandError]

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.t] method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[t][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.t](phrase: str)str

Translate a phrase, if possible.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_to_client] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[write_to_client][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_to_client](self, reply: Any)None

Send a reply to the client.

Parameters

  • reply : Any The reply to write, as a dataclass. It should have a "type" field whose value is a string.

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_to_loom] async method [BaseLoomServer][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer].[write_to_loom][mkapi.base_loom_server.base_loom_server with allow_reconnection.BaseLoomServer.write_to_loom](self, data: bytes | bytearray | str)None

Send data to the loom.

Parameters

  • data : bytes | bytearray | str The data to send, without a terminator. (This method will append the terminator).

Raises

  • RuntimeError

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.CloseCode] enum [CloseCode][mkapi.base_loom_server.base_loom_server with allow_reconnection.CloseCode](*args, **kwds)

Bases : enum.IntEnum

WebSocket close codes.

A small subset of https://www.rfc-editor.org/rfc/rfc6455.html#section-7.4

Attributes

  • NORMAL

  • GOING_AWAY

  • ERROR

[source][mkapi.source.base_loom_server.base_loom_server with allow_reconnection.CommandError] class [CommandError][mkapi.base_loom_server.base_loom_server with allow_reconnection.CommandError]()

Bases : Exception