GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — types(workspace-imports) Example typings via `NotRequried` by tony · Pull Request #981 · tmux-python/tmuxp Conversation
|
Reviewer's GuideThis PR enriches the workspace-imports typing by introducing comprehensive TypedDict definitions with NotRequired for optional fields and updates importer functions to reference the new WorkspaceConfig via TYPE_CHECKING, inline comments, and enhanced docstrings. Class Diagram of New Tmuxp Configuration TypesclassDiagram
class ShellCommandConfig {
+cmd: str
+enter: bool (optional)
+suppress_history: bool (optional)
}
class PaneConfig {
+shell_command: ShellCommandValue (optional)
+shell_command_before: ShellCommandValue (optional)
+start_directory: str (optional)
+environment: dict[str, str] (optional)
+focus: str | bool (optional)
+suppress_history: bool (optional)
}
class WindowConfig {
+window_name: str
+start_directory: str (optional)
+shell_command_before: ShellCommandValue (optional)
+layout: str (optional)
+options: dict[str, Any] (optional)
+options_after: dict[str, Any] (optional)
+environment: dict[str, str] (optional)
+focus: str | bool (optional)
+suppress_history: bool (optional)
+panes: list[PaneValue] (optional)
}
class WorkspaceConfig {
+session_name: str | None
+start_directory: str (optional)
+before_script: str (optional)
+shell_command_before: ShellCommandValue (optional)
+shell_command: ShellCommandValue (optional)
+environment: dict[str, str] (optional)
+global_options: dict[str, Any] (optional)
+options: dict[str, Any] (optional)
+config: str (optional)
+socket_name: str (optional)
+plugins: list[str | PluginConfigSchema] (optional)
+suppress_history: bool (optional)
+windows: list[WindowConfig]
}
class PluginConfigSchema {
+plugin_name: str
+tmux_min_version: str (optional)
+tmux_max_version: str (optional)
+tmux_version_incompatible: list[str] (optional)
+tmuxp_min_version: str (optional)
+tmuxp_max_version: str (optional)
+tmuxp_version_incompatible: list[str] (optional)
}
WorkspaceConfig "1" *-- "0..*" WindowConfig : windows
WorkspaceConfig "1" o-- "0..*" PluginConfigSchema : plugins
WindowConfig "1" *-- "0..*" PaneConfig : panes (via PaneValue)
PaneConfig ..> ShellCommandConfig : uses (via ShellCommandValue)
WindowConfig ..> ShellCommandConfig : uses (via ShellCommandValue)
WorkspaceConfig ..> ShellCommandConfig : uses (via ShellCommandValue)
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Hey @tony - I've reviewed your changes and they look great!
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| Returns | ||
| ------- | ||
| dict | ||
| A dictionary conforming to WorkspaceConfig structure. | ||
| """ | ||
| tmuxp_workspace: dict[str, t.Any] = {} | ||
| tmuxp_workspace: dict[str, t.Any] = {} # Will conform to WorkspaceConfig at the end |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Annotate tmuxp_workspace with WorkspaceConfig type
Since WorkspaceConfig is already imported under TYPE_CHECKING, use it to annotate tmuxp_workspace and update the function's return type for better type safety.
| Returns | |
| ------- | |
| dict | |
| A dictionary conforming to WorkspaceConfig structure. | |
| """ | |
| tmuxp_workspace: dict[str, t.Any] = {} | |
| tmuxp_workspace: dict[str, t.Any] = {} # Will conform to WorkspaceConfig at the end | |
| from tmuxp.types import WorkspaceConfig | |
| def import_tmuxinator(workspace_dict: dict[str, t.Any]) -> WorkspaceConfig: | |
| """Return tmuxp workspace from a `tmuxinator`_ yaml workspace. | |
| Returns | |
| ------- | |
| WorkspaceConfig | |
| A dictionary conforming to WorkspaceConfig structure. | |
| """ | |
| tmuxp_workspace: WorkspaceConfig = {} # Will conform to WorkspaceConfig at the end |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
7466b20 to
ea9a61f
Compare
There was an error while loading. Please reload this page.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@ ## master #981 +/- ## ========================================== + Coverage 82.55% 82.73% +0.18% ========================================== Files 31 31 Lines 2768 2809 +41 Branches 518 517 -1 ========================================== + Hits 2285 2324 +39 - Misses 346 347 +1 - Partials 137 138 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
febcb35 to
650928d
Compare
At least 1 approving review is required to merge this pull request.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.