Add type annotations to request_tab_widget.py
This commit is contained in:
parent
30872b4697
commit
b17393432c
@ -20,6 +20,7 @@
|
||||
import gi
|
||||
gi.require_version('GtkSource', '5')
|
||||
from gi.repository import Adw, Gtk, GLib, GtkSource, GObject
|
||||
from typing import Optional, Set, Dict, List
|
||||
from .models import HttpRequest, HttpResponse
|
||||
from .widgets.header_row import HeaderRow
|
||||
import json
|
||||
@ -32,20 +33,20 @@ class RequestTabWidget(Gtk.Box):
|
||||
def __init__(self, tab_id, request=None, response=None, project_id=None, selected_environment_id=None, scripts=None, **kwargs):
|
||||
super().__init__(orientation=Gtk.Orientation.VERTICAL, **kwargs)
|
||||
|
||||
self.tab_id = tab_id
|
||||
self.request = request or HttpRequest(method="GET", url="", headers={}, body="", syntax="RAW")
|
||||
self.response = response
|
||||
self.modified = False
|
||||
self.original_request = None
|
||||
self.tab_id: str = tab_id
|
||||
self.request: HttpRequest = request or HttpRequest(method="GET", url="", headers={}, body="", syntax="RAW")
|
||||
self.response: Optional[HttpResponse] = response
|
||||
self.modified: bool = False
|
||||
self.original_request: Optional[HttpRequest] = None
|
||||
self.original_scripts = None
|
||||
self.project_id = project_id
|
||||
self.selected_environment_id = selected_environment_id
|
||||
self.project_id: Optional[str] = project_id
|
||||
self.selected_environment_id: Optional[str] = selected_environment_id
|
||||
self.scripts = scripts
|
||||
self.project_manager = None # Will be injected from window
|
||||
self.environment_dropdown = None # Will be created if project_id is set
|
||||
self.env_separator = None # Visual separator after environment dropdown
|
||||
self.undefined_variables = set() # Track undefined variables for visual feedback
|
||||
self._update_indicators_timeout_id = None # Debounce timer for indicator updates
|
||||
self.environment_dropdown: Optional[Gtk.DropDown] = None
|
||||
self.env_separator: Optional[Gtk.Separator] = None
|
||||
self.undefined_variables: Set[str] = set()
|
||||
self._update_indicators_timeout_id: Optional[int] = None
|
||||
|
||||
# Build the UI
|
||||
self._build_ui()
|
||||
@ -61,7 +62,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
# Setup change tracking
|
||||
self._setup_change_tracking()
|
||||
|
||||
def _build_ui(self):
|
||||
def _build_ui(self) -> None:
|
||||
"""Build the complete UI for this tab."""
|
||||
|
||||
# URL Input Section - outer container (store as instance var for dynamic updates)
|
||||
@ -366,7 +367,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
|
||||
self.append(split_pane)
|
||||
|
||||
def _build_headers_tab(self):
|
||||
def _build_headers_tab(self) -> None:
|
||||
"""Build the headers tab."""
|
||||
headers_scroll = Gtk.ScrolledWindow()
|
||||
headers_scroll.set_vexpand(True)
|
||||
@ -392,7 +393,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
# Add initial empty header row
|
||||
self._add_header_row()
|
||||
|
||||
def _build_body_tab(self):
|
||||
def _build_body_tab(self) -> None:
|
||||
"""Build the body tab."""
|
||||
body_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0)
|
||||
|
||||
@ -706,7 +707,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
self.headers_listbox.remove(parent)
|
||||
self._on_request_changed(None)
|
||||
|
||||
def _setup_change_tracking(self):
|
||||
def _setup_change_tracking(self) -> None:
|
||||
"""Setup change tracking for this tab."""
|
||||
self.url_entry.connect("changed", self._on_request_changed)
|
||||
self.method_dropdown.connect("notify::selected", self._on_request_changed)
|
||||
@ -745,7 +746,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
'modified-changed': (GObject.SignalFlags.RUN_FIRST, None, (bool,))
|
||||
}
|
||||
|
||||
def _is_different_from_original(self, request):
|
||||
def _is_different_from_original(self, request: HttpRequest) -> bool:
|
||||
"""Check if current request differs from original."""
|
||||
if not self.original_request:
|
||||
return False
|
||||
@ -776,7 +777,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
|
||||
return request_changed or scripts_changed
|
||||
|
||||
def _load_request(self, request):
|
||||
def _load_request(self, request: HttpRequest) -> None:
|
||||
"""Load a request into this tab's UI."""
|
||||
# Set method
|
||||
methods = ["GET", "POST", "PUT", "DELETE"]
|
||||
@ -805,7 +806,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
if request.syntax in syntax_options:
|
||||
self.body_language_dropdown.set_selected(syntax_options.index(request.syntax))
|
||||
|
||||
def get_request(self):
|
||||
def get_request(self) -> HttpRequest:
|
||||
"""Build and return HttpRequest from current UI state."""
|
||||
method = self.method_dropdown.get_selected_item().get_string()
|
||||
url = self.url_entry.get_text().strip()
|
||||
@ -868,7 +869,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
postprocessing_buffer = self.postprocessing_sourceview.get_buffer()
|
||||
postprocessing_buffer.set_text(scripts.postprocessing)
|
||||
|
||||
def display_response(self, response):
|
||||
def display_response(self, response: HttpResponse) -> None:
|
||||
"""Display response in this tab's UI."""
|
||||
self.response = response
|
||||
|
||||
@ -896,7 +897,7 @@ class RequestTabWidget(Gtk.Box):
|
||||
language = self._get_language_from_content_type(content_type)
|
||||
source_buffer.set_language(language)
|
||||
|
||||
def display_error(self, error):
|
||||
def display_error(self, error: str) -> None:
|
||||
"""Display error in this tab's UI."""
|
||||
self.status_label.set_text("Error")
|
||||
self.time_label.set_text("")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user