Last active
February 15, 2024 14:34
-
-
Save tony/28e74f834a80c05c878ab63cb08ea825 to your computer and use it in GitHub Desktop.
libtmux / python: Schema of tmux options (tmux 3.4)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import enum | |
| import typing as t | |
| from dataclasses import dataclass, field | |
| from libtmux._internal.dataclasses import SkipDefaultFieldsReprMixin | |
| class ServerOptions(enum.Enum): | |
| backspace = "backspace" | |
| buffer_limit = "buffer-limit" | |
| command_alias = "command-alias" | |
| default_terminal = "default-terminal" | |
| copy_command = "copy-command" | |
| escape_time = "escape-time" | |
| editor = "editor" | |
| exit_empty = "exit-empty" | |
| exit_unattached = "exit-unattached" | |
| extended_keys = "extended-keys" | |
| focus_events = "focus-events" | |
| history_file = "history-file" | |
| message_limit = "message-limit" | |
| prompt_history_limit = "prompt-history-limit" | |
| set_clipboard = "set-clipboard" | |
| terminal_features = "terminal-features" | |
| terminal_overrides = "terminal-overrides" | |
| user_keys = "user-keys" | |
| class SessionOptions(enum.Enum): | |
| activity_action = "activity-action" | |
| assume_paste_time = "assume-paste-time" | |
| base_index = "base-index" | |
| bell_action = "bell-action" | |
| default_command = "default-command" | |
| default_shell = "default-shell" | |
| default_size = "default-size" | |
| destroy_unattached = "destroy-unattached" | |
| detach_on_destroy = "detach-on-destroy" | |
| display_panes_active_colour = "display-panes-active-colour" | |
| display_panes_colour = "display-panes-colour" | |
| display_panes_time = "display-panes-time" | |
| display_time = "display-time" | |
| history_limit = "history-limit" | |
| key_table = "key-table" | |
| lock_after_time = "lock-after-time" | |
| lock_command = "lock-command" | |
| menu_style = "menu-style" | |
| menu_selected_style = "menu-selected-style" | |
| menu_border_style = "menu-border-style" | |
| menu_border_lines = "menu-border-lines" | |
| message_command_style = "message-command-style" | |
| message_line = "message-line" | |
| message_style = "message-style" | |
| mouse = "mouse" | |
| prefix = "prefix" | |
| prefix2 = "prefix2" | |
| renumber_windows = "renumber-windows" | |
| repeat_time = "repeat-time" | |
| set_titles = "set-titles" | |
| set_titles_string = "set-titles-string" | |
| silence_action = "silence-action" | |
| status = "status" | |
| status_format = "status-format[]" | |
| status_interval = "status-interval" | |
| status_justify = "status-justify" | |
| status_keys = "status-keys" | |
| status_left = "status-left" | |
| status_left_length = "status-left-length" | |
| status_left_style = "status-left-style" | |
| status_position = "status-position" | |
| status_right = "status-right" | |
| status_right_length = "status-right-length" | |
| status_right_style = "status-right-style" | |
| status_style = "status-style" | |
| update_environment = "update-environment[]" | |
| visual_activity = "visual-activity" | |
| visual_bell = "visual-bell" | |
| visual_silence = "visual-silence" | |
| word_separators = "word-separators" | |
| class WindowOptions(enum.Enum): | |
| aggressive_resize = "aggressive-resize" | |
| automatic_rename = "automatic-rename" | |
| automatic_rename_format = "automatic-rename-format" | |
| clock_mode_colour = "clock-mode-colour" | |
| clock_mode_style = "clock-mode-style" | |
| fill_character = "fill-character" | |
| main_pane_height = "main-pane-height" | |
| main_pane_width = "main-pane-width" | |
| copy_mode_match_style = "copy-mode-match-style" | |
| copy_mode_mark_style = "copy-mode-mark-style" | |
| copy_mode_current_match_style = "copy-mode-current-match-style" | |
| mode_keys = "mode-keys" | |
| mode_style = "mode-style" | |
| monitor_activity = "monitor-activity" | |
| monitor_bell = "monitor-bell" | |
| monitor_silence = "monitor-silence" | |
| other_pane_height = "other-pane-height" | |
| other_pane_width = "other-pane-width" | |
| pane_active_border_style = "pane-active-border-style" | |
| pane_base_index = "pane-base-index" | |
| pane_border_format = "pane-border-format" | |
| pane_border_indicators = "pane-border-indicators" | |
| pane_border_lines = "pane-border-lines" | |
| pane_border_status = "pane-border-status" | |
| pane_border_style = "pane-border-style" | |
| popup_style = "popup-style" | |
| popup_border_style = "popup-border-style" | |
| popup_border_lines = "popup-border-lines" | |
| window_status_activity_style = "window-status-activity-style" | |
| window_status_bell_style = "window-status-bell-style" | |
| window_status_current_format = "window-status-current-format" | |
| window_status_current_style = "window-status-current-style" | |
| window_status_format = "window-status-format" | |
| window_status_last_style = "window-status-last-style" | |
| window_status_separator = "window-status-separator" | |
| window_status_style = "window-status-style" | |
| window_size = "window-size" | |
| wrap_search = "wrap-search" | |
| class PaneOptions(enum.Enum): | |
| allow_passthrough = "allow-passthrough" | |
| allow_rename = "allow-rename" | |
| alternate_screen = "alternate-screen" | |
| cursor_colour = "cursor-colour" | |
| pane_colours = "pane-colours[]" | |
| cursor_style = "cursor-style" | |
| remain_on_exit = "remain-on-exit" | |
| remain_on_exit_format = "remain-on-exit-format" | |
| scroll_on_clear = "scroll-on-clear" | |
| synchronize_panes = "synchronize-panes" | |
| window_active_style = "window-active-style" | |
| window_style = "window-style" | |
| class PaneOptionsDict(t.TypedDict, total=False): | |
| allow_passthrough: t.Optional[t.Literal["on", "off", "all"]] | |
| allow_rename: t.Optional[t.Literal["on", "off"]] | |
| alternate_screen: t.Optional[t.Literal["on", "off"]] | |
| cursor_colour: t.Optional[str] # Assuming colour is specified as a string | |
| pane_colours: t.Optional[ | |
| t.List[str] | |
| ] # Assuming each colour in the palette is specified as a string | |
| cursor_style: t.Optional[ | |
| t.Literal[ | |
| "default", | |
| "blinking-block", | |
| "block", | |
| "blinking-underline", | |
| "underline", | |
| "blinking-bar", | |
| "bar", | |
| ] | |
| ] | |
| remain_on_exit: t.Optional[t.Literal["on", "off", "failed"]] | |
| remain_on_exit_format: t.Optional[str] | |
| scroll_on_clear: t.Optional[t.Literal["on", "off"]] | |
| synchronize_panes: t.Optional[t.Literal["on", "off"]] | |
| window_active_style: t.Optional[ | |
| str | |
| ] # Style specifications are assumed to be strings | |
| window_style: t.Optional[str] # Style specifications are assumed to be strings | |
| class WindowOptionsDict(t.TypedDict, total=False): | |
| aggressive_resize: t.Optional[t.Literal["on", "off"]] | |
| automatic_rename: t.Optional[t.Literal["on", "off"]] | |
| automatic_rename_format: t.Optional[str] | |
| clock_mode_colour: t.Optional[str] # Assuming colour is specified as a string | |
| clock_mode_style: t.Optional[t.Literal["12", "24"]] | |
| fill_character: t.Optional[str] | |
| main_pane_height: t.Optional[ | |
| t.Union[int, str] | |
| ] # Int for fixed size, str for percentage | |
| main_pane_width: t.Optional[ | |
| t.Union[int, str] | |
| ] # Int for fixed size, str for percentage | |
| copy_mode_match_style: t.Optional[str] | |
| copy_mode_mark_style: t.Optional[str] | |
| copy_mode_current_match_style: t.Optional[str] | |
| mode_keys: t.Optional[t.Literal["vi", "emacs"]] | |
| mode_style: t.Optional[str] | |
| monitor_activity: t.Optional[t.Literal["on", "off"]] | |
| monitor_bell: t.Optional[t.Literal["on", "off"]] | |
| monitor_silence: t.Optional[int] # Assuming seconds as int | |
| other_pane_height: t.Optional[ | |
| t.Union[int, str] | |
| ] # Int for fixed size, str for percentage | |
| other_pane_width: t.Optional[ | |
| t.Union[int, str] | |
| ] # Int for fixed size, str for percentage | |
| pane_active_border_style: t.Optional[str] | |
| pane_base_index: t.Optional[int] | |
| pane_border_format: t.Optional[str] | |
| pane_border_indicators: t.Optional[t.Literal["off", "colour", "arrows", "both"]] | |
| pane_border_lines: t.Optional[ | |
| t.Literal["single", "double", "heavy", "simple", "number"] | |
| ] | |
| pane_border_status: t.Optional[t.Literal["off", "top", "bottom"]] | |
| pane_border_style: t.Optional[str] | |
| popup_style: t.Optional[str] | |
| popup_border_style: t.Optional[str] | |
| popup_border_lines: t.Optional[ | |
| t.Literal["single", "rounded", "double", "heavy", "simple", "padded", "none"] | |
| ] | |
| window_status_activity_style: t.Optional[str] | |
| window_status_bell_style: t.Optional[str] | |
| window_status_current_format: t.Optional[str] | |
| window_status_current_style: t.Optional[str] | |
| window_status_format: t.Optional[str] | |
| window_status_last_style: t.Optional[str] | |
| window_status_separator: t.Optional[str] | |
| window_status_style: t.Optional[str] | |
| window_size: t.Optional[t.Literal["largest", "smallest", "manual", "latest"]] | |
| wrap_search: t.Optional[t.Literal["on", "off"]] | |
| class SessionOptionsDict(t.TypedDict, total=False): | |
| activity_action: t.Optional[t.Literal["any", "none", "current", "other"]] | |
| assume_paste_time: t.Optional[int] # Milliseconds | |
| base_index: t.Optional[int] | |
| bell_action: t.Optional[t.Literal["any", "none", "current", "other"]] | |
| default_command: t.Optional[str] | |
| default_shell: t.Optional[str] | |
| default_size: t.Optional[str] # Format "XxY" | |
| destroy_unattached: t.Optional[t.Literal["on", "off"]] | |
| detach_on_destroy: t.Optional[ | |
| t.Literal["off", "on", "no-detached", "previous", "next"] | |
| ] | |
| display_panes_active_colour: t.Optional[ | |
| str | |
| ] # Assuming colour is specified as a string | |
| display_panes_colour: t.Optional[str] # Assuming colour is specified as a string | |
| display_panes_time: t.Optional[int] # Milliseconds | |
| display_time: t.Optional[int] # Milliseconds | |
| history_limit: t.Optional[int] | |
| key_table: t.Optional[str] | |
| lock_after_time: t.Optional[int] # Seconds | |
| lock_command: t.Optional[str] | |
| menu_style: t.Optional[str] | |
| menu_selected_style: t.Optional[str] | |
| menu_border_style: t.Optional[str] | |
| menu_border_lines: t.Optional[ | |
| t.Literal["single", "rounded", "double", "heavy", "simple", "padded", "none"] | |
| ] | |
| message_command_style: t.Optional[str] | |
| message_line: t.Optional[t.Literal[0, 1, 2, 3, 4]] | |
| message_style: t.Optional[str] | |
| mouse: t.Optional[t.Literal["on", "off"]] | |
| prefix: t.Optional[str] # Could be a key symbol or 'None' | |
| prefix2: t.Optional[str] # Could be a key symbol or 'None' | |
| renumber_windows: t.Optional[t.Literal["on", "off"]] | |
| repeat_time: t.Optional[int] # Milliseconds | |
| set_titles: t.Optional[t.Literal["on", "off"]] | |
| set_titles_string: t.Optional[str] | |
| silence_action: t.Optional[t.Literal["any", "none", "current", "other"]] | |
| status: t.Optional[t.Literal["off", "on", 2, 3, 4, 5]] | |
| status_format: t.Optional[t.List[str]] | |
| status_interval: t.Optional[int] # Seconds | |
| status_justify: t.Optional[t.Literal["left", "centre", "right", "absolute-centre"]] | |
| status_keys: t.Optional[t.Literal["vi", "emacs"]] | |
| status_left: t.Optional[str] | |
| status_left_length: t.Optional[int] | |
| status_left_style: t.Optional[str] | |
| status_position: t.Optional[t.Literal["top", "bottom"]] | |
| status_right: t.Optional[str] | |
| status_right_length: t.Optional[int] | |
| status_right_style: t.Optional[str] | |
| status_style: t.Optional[str] | |
| update_environment: t.Optional[t.List[str]] | |
| visual_activity: t.Optional[t.Literal["on", "off", "both"]] | |
| visual_bell: t.Optional[t.Literal["on", "off", "both"]] | |
| visual_silence: t.Optional[t.Literal["on", "off", "both"]] | |
| word_separators: t.Optional[str] | |
| class ServerOptionsDict(t.TypedDict, total=False): | |
| backspace: t.Optional[str] | |
| buffer_limit: t.Optional[int] | |
| command_alias: t.Optional[t.Dict[str, str]] | |
| default_terminal: t.Optional[str] | |
| copy_command: t.Optional[str] | |
| escape_time: t.Optional[int] # Milliseconds | |
| editor: t.Optional[str] | |
| exit_empty: t.Optional[t.Literal["on", "off"]] | |
| exit_unattached: t.Optional[t.Literal["on", "off"]] | |
| extended_keys: t.Optional[t.Literal["on", "off", "always"]] | |
| focus_events: t.Optional[t.Literal["on", "off"]] | |
| history_file: t.Optional[str] | |
| message_limit: t.Optional[int] | |
| prompt_history_limit: t.Optional[int] | |
| set_clipboard: t.Optional[t.Literal["on", "external", "off"]] | |
| terminal_features: t.Optional[ | |
| t.Dict[str, t.List[str]] | |
| ] # terminal type pattern to features list | |
| terminal_overrides: t.Optional[ | |
| t.Dict[str, str] | |
| ] # terminal type pattern to terminfo overrides | |
| user_keys: t.Optional[t.Dict[int, str]] # User-defined key escape sequences | |
| @dataclass(repr=False) | |
| class ServerOptionsDataClass( | |
| SkipDefaultFieldsReprMixin, | |
| ): | |
| backspace: t.Optional[str] = field(default=None) | |
| buffer_limit: t.Optional[int] = field(default=None) | |
| command_alias: t.Optional[t.Dict[str, str]] = field(default=None) | |
| default_terminal: t.Optional[str] = field(default=None) | |
| copy_command: t.Optional[str] = field(default=None) | |
| escape_time: t.Optional[int] = field(default=None) | |
| editor: t.Optional[str] = field(default=None) | |
| exit_empty: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| exit_unattached: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| extended_keys: t.Optional[t.Literal["on", "off", "always"]] = field(default=None) | |
| focus_events: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| history_file: t.Optional[str] = field(default=None) | |
| message_limit: t.Optional[int] = field(default=None) | |
| prompt_history_limit: t.Optional[int] = field(default=None) | |
| set_clipboard: t.Optional[t.Literal["on", "external", "off"]] = field(default=None) | |
| terminal_features: t.Optional[t.Dict[str, t.List[str]]] = field(default=None) | |
| terminal_overrides: t.Optional[t.Dict[str, str]] = field(default=None) | |
| user_keys: t.Optional[t.Dict[int, str]] = field(default=None) | |
| def __init__(self, **kwargs: object) -> None: | |
| # Convert hyphenated keys to underscored attribute names and assign values | |
| for key, value in kwargs.items(): | |
| key_underscored = key.replace("-", "_") | |
| setattr(self, key_underscored, value) | |
| @dataclass(repr=False) | |
| class SessionOptionsDataClass( | |
| SkipDefaultFieldsReprMixin, | |
| ): | |
| activity_action: t.Optional[t.Literal["any", "none", "current", "other"]] = field( | |
| default=None | |
| ) | |
| assume_paste_time: t.Optional[int] = field(default=None) | |
| base_index: t.Optional[int] = field(default=None) | |
| bell_action: t.Optional[t.Literal["any", "none", "current", "other"]] = field( | |
| default=None | |
| ) | |
| default_command: t.Optional[str] = field(default=None) | |
| default_shell: t.Optional[str] = field(default=None) | |
| default_size: t.Optional[str] = field(default=None) # Format "XxY" | |
| destroy_unattached: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| detach_on_destroy: t.Optional[ | |
| t.Literal["off", "on", "no-detached", "previous", "next"] | |
| ] = field(default=None) | |
| display_panes_active_colour: t.Optional[str] = field(default=None) | |
| display_panes_colour: t.Optional[str] = field(default=None) | |
| display_panes_time: t.Optional[int] = field(default=None) | |
| display_time: t.Optional[int] = field(default=None) | |
| history_limit: t.Optional[int] = field(default=None) | |
| key_table: t.Optional[str] = field(default=None) | |
| lock_after_time: t.Optional[int] = field(default=None) | |
| lock_command: t.Optional[str] = field(default=None) | |
| menu_style: t.Optional[str] = field(default=None) | |
| menu_selected_style: t.Optional[str] = field(default=None) | |
| menu_border_style: t.Optional[str] = field(default=None) | |
| menu_border_lines: t.Optional[ | |
| t.Literal["single", "rounded", "double", "heavy", "simple", "padded", "none"] | |
| ] = field(default=None) | |
| message_command_style: t.Optional[str] = field(default=None) | |
| message_line: t.Optional[int] = field(default=None) | |
| message_style: t.Optional[str] = field(default=None) | |
| mouse: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| prefix: t.Optional[str] = field(default=None) | |
| prefix2: t.Optional[str] = field(default=None) | |
| renumber_windows: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| repeat_time: t.Optional[int] = field(default=None) | |
| set_titles: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| set_titles_string: t.Optional[str] = field(default=None) | |
| silence_action: t.Optional[t.Literal["any", "none", "current", "other"]] = field( | |
| default=None | |
| ) | |
| status: t.Optional[t.Union[t.Literal["off", "on"], int]] = field(default=None) | |
| status_format: t.Optional[t.List[str]] = field(default=None) | |
| status_interval: t.Optional[int] = field(default=None) | |
| status_justify: t.Optional[ | |
| t.Literal["left", "centre", "right", "absolute-centre"] | |
| ] = field(default=None) | |
| status_keys: t.Optional[t.Literal["vi", "emacs"]] = field(default=None) | |
| status_left: t.Optional[str] = field(default=None) | |
| status_left_length: t.Optional[int] = field(default=None) | |
| status_left_style: t.Optional[str] = field(default=None) | |
| status_position: t.Optional[t.Literal["top", "bottom"]] = field(default=None) | |
| status_right: t.Optional[str] = field(default=None) | |
| status_right_length: t.Optional[int] = field(default=None) | |
| status_right_style: t.Optional[str] = field(default=None) | |
| status_style: t.Optional[str] = field(default=None) | |
| update_environment: t.Optional[t.List[str]] = field(default=None) | |
| visual_activity: t.Optional[t.Literal["on", "off", "both"]] = field(default=None) | |
| visual_bell: t.Optional[t.Literal["on", "off", "both"]] = field(default=None) | |
| visual_silence: t.Optional[t.Literal["on", "off", "both"]] = field(default=None) | |
| word_separators: t.Optional[str] = field(default=None) | |
| def __init__(self, **kwargs: object) -> None: | |
| # Convert hyphenated keys to underscored attribute names and assign values | |
| for key, value in kwargs.items(): | |
| key_underscored = key.replace("-", "_") | |
| setattr(self, key_underscored, value) | |
| @dataclass(repr=False) | |
| class WindowOptionsDataClass( | |
| SkipDefaultFieldsReprMixin, | |
| ): | |
| aggressive_resize: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| automatic_rename: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| automatic_rename_format: t.Optional[str] = field(default=None) | |
| clock_mode_colour: t.Optional[str] = field(default=None) | |
| clock_mode_style: t.Optional[t.Literal["12", "24"]] = field(default=None) | |
| fill_character: t.Optional[str] = field(default=None) | |
| main_pane_height: t.Optional[t.Union[int, str]] = field(default=None) | |
| main_pane_width: t.Optional[t.Union[int, str]] = field(default=None) | |
| copy_mode_match_style: t.Optional[str] = field(default=None) | |
| copy_mode_mark_style: t.Optional[str] = field(default=None) | |
| copy_mode_current_match_style: t.Optional[str] = field(default=None) | |
| mode_keys: t.Optional[t.Literal["vi", "emacs"]] = field(default=None) | |
| mode_style: t.Optional[str] = field(default=None) | |
| monitor_activity: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| monitor_bell: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| monitor_silence: t.Optional[int] = field(default=None) # Assuming seconds as int | |
| other_pane_height: t.Optional[t.Union[int, str]] = field(default=None) | |
| other_pane_width: t.Optional[t.Union[int, str]] = field(default=None) | |
| pane_active_border_style: t.Optional[str] = field(default=None) | |
| pane_base_index: t.Optional[int] = field(default=None) | |
| pane_border_format: t.Optional[str] = field(default=None) | |
| pane_border_indicators: t.Optional[ | |
| t.Literal["off", "colour", "arrows", "both"] | |
| ] = field(default=None) | |
| pane_border_lines: t.Optional[ | |
| t.Literal["single", "double", "heavy", "simple", "number"] | |
| ] = field(default=None) | |
| pane_border_status: t.Optional[t.Literal["off", "top", "bottom"]] = field( | |
| default=None | |
| ) | |
| pane_border_style: t.Optional[str] = field(default=None) | |
| popup_style: t.Optional[str] = field(default=None) | |
| popup_border_style: t.Optional[str] = field(default=None) | |
| popup_border_lines: t.Optional[ | |
| t.Literal["single", "rounded", "double", "heavy", "simple", "padded", "none"] | |
| ] = field(default=None) | |
| window_status_activity_style: t.Optional[str] = field(default=None) | |
| window_status_bell_style: t.Optional[str] = field(default=None) | |
| window_status_current_format: t.Optional[str] = field(default=None) | |
| window_status_current_style: t.Optional[str] = field(default=None) | |
| window_status_format: t.Optional[str] = field(default=None) | |
| window_status_last_style: t.Optional[str] = field(default=None) | |
| window_status_separator: t.Optional[str] = field(default=None) | |
| window_status_style: t.Optional[str] = field(default=None) | |
| window_size: t.Optional[ | |
| t.Literal["largest", "smallest", "manual", "latest"] | |
| ] = field(default=None) | |
| wrap_search: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| def __init__(self, **kwargs: object) -> None: | |
| # Convert hyphenated keys to underscored attribute names and assign values | |
| for key, value in kwargs.items(): | |
| key_underscored = key.replace("-", "_") | |
| setattr(self, key_underscored, value) | |
| @dataclass(repr=False) | |
| class PaneOptionsDataClass( | |
| SkipDefaultFieldsReprMixin, | |
| ): | |
| allow_passthrough: t.Optional[t.Literal["on", "off", "all"]] = field(default=None) | |
| allow_rename: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| alternate_screen: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| cursor_colour: t.Optional[str] = field(default=None) | |
| pane_colours: t.Optional[t.List[str]] = field(default=None) | |
| cursor_style: t.Optional[ | |
| t.Literal[ | |
| "default", | |
| "blinking-block", | |
| "block", | |
| "blinking-underline", | |
| "underline", | |
| "blinking-bar", | |
| "bar", | |
| ] | |
| ] = field(default=None) | |
| remain_on_exit: t.Optional[t.Literal["on", "off", "failed"]] = field(default=None) | |
| remain_on_exit_format: t.Optional[str] = field(default=None) | |
| scroll_on_clear: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| synchronize_panes: t.Optional[t.Literal["on", "off"]] = field(default=None) | |
| window_active_style: t.Optional[str] = field(default=None) | |
| window_style: t.Optional[str] = field(default=None) | |
| def __init__(self, **kwargs: object) -> None: | |
| # Convert hyphenated keys to underscored attribute names and assign values | |
| for key, value in kwargs.items(): | |
| key_underscored = key.replace("-", "_") | |
| setattr(self, key_underscored, value) | |
| @dataclass(repr=False) | |
| class OptionsDataClass( | |
| ServerOptionsDataClass, | |
| SessionOptionsDataClass, | |
| WindowOptionsDataClass, | |
| PaneOptionsDataClass, | |
| SkipDefaultFieldsReprMixin, | |
| ): | |
| def __init__(self, **kwargs: object) -> None: | |
| # Convert hyphenated keys to underscored attribute names and assign values | |
| # Remove asaterisk from inherited options | |
| for key, value in kwargs.items(): | |
| key_underscored = key.replace("-", "_") | |
| key_asterisk_removed = key_underscored.rstrip("*") | |
| setattr(self, key_asterisk_removed, value) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment