From dae5a014ccbfe5a99379163b49e426eeb0b9e766 Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Wed, 19 Nov 2025 12:40:29 -0500 Subject: Improve python api type hints --- python/interaction.py | 76 +++++++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) (limited to 'python/interaction.py') diff --git a/python/interaction.py b/python/interaction.py index 27648e12..d94fdb87 100644 --- a/python/interaction.py +++ b/python/interaction.py @@ -381,12 +381,12 @@ class SaveFileNameField: """ ``SaveFileNameField`` prompts the user to specify a file name to save. Result is stored in self.result as a string. """ - def __init__(self, prompt, ext="", default_name="", default=None): + def __init__(self, prompt: str, ext: str = "", default_name: str = "", default: Optional[str] = None): self._prompt = prompt self._ext = ext self._default_name = default_name self._default = default - self._result = None + self._result: Optional[str] = None def _fill_core_struct(self, value): value.type = FormInputFieldType.SaveFileNameFormField @@ -408,7 +408,7 @@ class SaveFileNameField: return self._prompt @prompt.setter - def prompt(self, value): + def prompt(self, value: str): self._prompt = value @property @@ -416,7 +416,7 @@ class SaveFileNameField: return self._ext @ext.setter - def ext(self, value): + def ext(self, value: str): self._ext = value @property @@ -424,7 +424,7 @@ class SaveFileNameField: return self._default_name @default_name.setter - def default_name(self, value): + def default_name(self, value: str): self._default_name = value @property @@ -432,7 +432,7 @@ class SaveFileNameField: return self._result @result.setter - def result(self, value): + def result(self, value: Optional[str]): self._result = value @@ -441,7 +441,7 @@ class DirectoryNameField: ``DirectoryNameField`` prompts the user to specify a directory name to open. Result is stored in self.result as a string. """ - def __init__(self, prompt, default_name="", default=None): + def __init__(self, prompt: str, default_name: str = "", default: Optional[str] = None): self._prompt = prompt self._default_name = default_name self._default = default @@ -466,7 +466,7 @@ class DirectoryNameField: return self._prompt @prompt.setter - def prompt(self, value): + def prompt(self, value: str): self._prompt = value @property @@ -474,7 +474,7 @@ class DirectoryNameField: return self._default_name @default_name.setter - def default_name(self, value): + def default_name(self, value: str): self._default_name = value @property @@ -482,7 +482,7 @@ class DirectoryNameField: return self._result @result.setter - def result(self, value): + def result(self, value: Optional[str]): self._result = value @@ -494,7 +494,7 @@ class CheckboxField: :param str prompt: Prompt to be presented to the user :param bool default: Default state of the checkbox (False == unchecked, True == checked) """ - def __init__(self, prompt, default): + def __init__(self, prompt: str, default: Optional[bool]): self._prompt = prompt self._result = None self._default = default @@ -516,7 +516,7 @@ class CheckboxField: return self._prompt @prompt.setter - def prompt(self, value): + def prompt(self, value: str): self._prompt = value @property @@ -524,7 +524,7 @@ class CheckboxField: return self._result @result.setter - def result(self, value): + def result(self, value: bool): self._result = value @property @@ -532,7 +532,7 @@ class CheckboxField: return self._default @default.setter - def default(self, value): + def default(self, value: Optional[bool]): self._default = value @@ -882,7 +882,7 @@ class InteractionHandler: class PlainTextReport: - def __init__(self, title, contents, view=None): + def __init__(self, title: str, contents: str, view: Optional['binaryview.BinaryView'] = None): self._view = view self._title = title self._contents = contents @@ -898,7 +898,7 @@ class PlainTextReport: return self._view @view.setter - def view(self, value): + def view(self, value: Optional['binaryview.BinaryView']): self._view = value @property @@ -906,7 +906,7 @@ class PlainTextReport: return self._title @title.setter - def title(self, value): + def title(self, value: str): self._title = value @property @@ -914,12 +914,12 @@ class PlainTextReport: return self._contents @contents.setter - def contents(self, value): + def contents(self, value: str): self._contents = value class MarkdownReport: - def __init__(self, title, contents, plaintext="", view=None): + def __init__(self, title: str, contents: str, plaintext: str = "", view: Optional['binaryview.BinaryView'] = None): self._view = view self._title = title self._contents = contents @@ -936,7 +936,7 @@ class MarkdownReport: return self._view @view.setter - def view(self, value): + def view(self, value: Optional['binaryview.BinaryView']): self._view = value @property @@ -944,7 +944,7 @@ class MarkdownReport: return self._title @title.setter - def title(self, value): + def title(self, value: str): self._title = value @property @@ -952,7 +952,7 @@ class MarkdownReport: return self._contents @contents.setter - def contents(self, value): + def contents(self, value: str): self._contents = value @property @@ -960,12 +960,12 @@ class MarkdownReport: return self._plaintext @plaintext.setter - def plaintext(self, value): + def plaintext(self, value: str): self._plaintext = value class HTMLReport: - def __init__(self, title, contents, plaintext="", view=None): + def __init__(self, title: str, contents: str, plaintext: str = "", view: Optional['binaryview.BinaryView'] = None): self._view = view self._title = title self._contents = contents @@ -982,7 +982,7 @@ class HTMLReport: return self._view @view.setter - def view(self, value): + def view(self, value: Optional['binaryview.BinaryView']): self._view = value @property @@ -990,7 +990,7 @@ class HTMLReport: return self._title @title.setter - def title(self, value): + def title(self, value: str): self._title = value @property @@ -998,7 +998,7 @@ class HTMLReport: return self._contents @contents.setter - def contents(self, value): + def contents(self, value: str): self._contents = value @property @@ -1006,12 +1006,12 @@ class HTMLReport: return self._plaintext @plaintext.setter - def plaintext(self, value): + def plaintext(self, value: str): self._plaintext = value class FlowGraphReport: - def __init__(self, title, graph, view=None): + def __init__(self, title: str, graph: 'flowgraph.FlowGraph', view: Optional['binaryview.BinaryView'] = None): self._view = view self._title = title self._graph = graph @@ -1024,7 +1024,7 @@ class FlowGraphReport: return self._view @view.setter - def view(self, value): + def view(self, value: Optional['binaryview.BinaryView']): self._view = value @property @@ -1032,7 +1032,7 @@ class FlowGraphReport: return self._title @title.setter - def title(self, value): + def title(self, value: str): self._title = value @property @@ -1040,7 +1040,7 @@ class FlowGraphReport: return self._graph @graph.setter - def graph(self, value): + def graph(self, value: 'flowgraph.FlowGraph'): self._graph = value @@ -1056,22 +1056,22 @@ class ReportCollection: def _report_from_index(self, i): report_type = core.BNGetReportType(self.handle, i) - title = core.BNGetReportTitle(self.handle, i) + title: str = core.BNGetReportTitle(self.handle, i) # type: ignore view = core.BNGetReportView(self.handle, i) if view: view = binaryview.BinaryView(handle=view) else: view = None if report_type == ReportType.PlainTextReportType: - contents = core.BNGetReportContents(self.handle, i) + contents: str = core.BNGetReportContents(self.handle, i) # type: ignore return PlainTextReport(title, contents, view) elif report_type == ReportType.MarkdownReportType: - contents = core.BNGetReportContents(self.handle, i) - plaintext = core.BNGetReportPlainText(self.handle, i) + contents: str = core.BNGetReportContents(self.handle, i) # type: ignore + plaintext: str = core.BNGetReportPlainText(self.handle, i) # type: ignore return MarkdownReport(title, contents, plaintext, view) elif report_type == ReportType.HTMLReportType: - contents = core.BNGetReportContents(self.handle, i) - plaintext = core.BNGetReportPlainText(self.handle, i) + contents: str = core.BNGetReportContents(self.handle, i) # type: ignore + plaintext: str = core.BNGetReportPlainText(self.handle, i) # type: ignore return HTMLReport(title, contents, plaintext, view) elif report_type == ReportType.FlowGraphReportType: graph = flowgraph.CoreFlowGraph(core.BNGetReportFlowGraph(self.handle, i)) -- cgit v1.3.1