mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-01-09 05:58:00 -05:00
Merge branch
'GP-0_ryanmkurtz_PR-8727_niooss-ledger_pyghidra-fix-contextmanager-type-annotations' into Ghidra_12.0 (Closes #8727)
This commit is contained in:
@@ -69,7 +69,7 @@ def open_project(
|
||||
path: Union[str, Path],
|
||||
name: str,
|
||||
create: bool = False
|
||||
) -> "Project": # type: ignore
|
||||
) -> "Project":
|
||||
"""
|
||||
Opens the Ghidra project at the given location, optionally creating it if it doesn't exist.
|
||||
|
||||
@@ -126,7 +126,7 @@ def consume_program(
|
||||
def program_context(
|
||||
project: "Project",
|
||||
path: Union[str, Path],
|
||||
) -> "Program":
|
||||
) -> Generator["Program", None, None]:
|
||||
"""
|
||||
Gets the Ghidra program from the given project with the given project path. The returned
|
||||
program's resource cleanup is performed by a context manager.
|
||||
@@ -180,7 +180,7 @@ def ghidra_script(
|
||||
def transaction(
|
||||
program: "Program",
|
||||
description: str = "Unnamed Transaction"
|
||||
):
|
||||
) -> Generator[int, None, None]:
|
||||
"""
|
||||
Creates a context for running a Ghidra transaction.
|
||||
|
||||
@@ -339,7 +339,7 @@ def open_program(
|
||||
loader: Union[str, JClass] = None,
|
||||
program_name: str = None,
|
||||
nested_project_location = True
|
||||
) -> ContextManager["FlatProgramAPI"]: # type: ignore
|
||||
) -> Generator["FlatProgramAPI", None, None]:
|
||||
"""
|
||||
Opens given binary path (or optional program name) in Ghidra and returns FlatProgramAPI object.
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
##
|
||||
import sys
|
||||
import contextlib
|
||||
from typing import Union, TYPE_CHECKING, Tuple, List, Callable, Any, Optional
|
||||
from typing import Union, TYPE_CHECKING, Tuple, List, Callable, Generator, Any, Optional
|
||||
|
||||
from pyghidra.converters import * # pylint: disable=wildcard-import, unused-wildcard-import
|
||||
|
||||
@@ -61,7 +61,7 @@ def open_project(
|
||||
path: Union[str, Path],
|
||||
name: str,
|
||||
create: bool = False
|
||||
) -> "Project": # type: ignore
|
||||
) -> "Project":
|
||||
"""
|
||||
Opens the Ghidra project at the given location, optionally creating it if it doesn't exist.
|
||||
|
||||
@@ -142,7 +142,7 @@ def consume_program(
|
||||
def program_context(
|
||||
project: "Project",
|
||||
path: Union[str, Path],
|
||||
) -> "Program":
|
||||
) -> Generator["Program", None, None]:
|
||||
"""
|
||||
Gets the Ghidra program from the given project with the given project path. The returned
|
||||
program's resource cleanup is performed by a context manager.
|
||||
@@ -256,7 +256,7 @@ def ghidra_script(
|
||||
def transaction(
|
||||
program: "Program",
|
||||
description: str = "Unnamed Transaction"
|
||||
):
|
||||
) -> Generator[int, None, None]:
|
||||
"""
|
||||
Creates a context for running a Ghidra transaction.
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
##
|
||||
import contextlib
|
||||
import warnings
|
||||
from typing import Union, TYPE_CHECKING, Tuple, ContextManager, List, Optional
|
||||
from typing import Union, TYPE_CHECKING, Tuple, Generator, List, Optional
|
||||
|
||||
from pyghidra.converters import * # pylint: disable=wildcard-import, unused-wildcard-import
|
||||
|
||||
@@ -179,7 +179,7 @@ def open_program(
|
||||
loader: Union[str, JClass] = None,
|
||||
program_name: str = None,
|
||||
nested_project_location = True
|
||||
) -> ContextManager["FlatProgramAPI"]: # type: ignore
|
||||
) -> Generator["FlatProgramAPI", None, None]:
|
||||
"""
|
||||
Opens given binary path (or optional program name) in Ghidra and returns FlatProgramAPI object.
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import sys
|
||||
import threading
|
||||
import types
|
||||
from code import InteractiveConsole
|
||||
from typing import Generator
|
||||
|
||||
from ghidra.app.script import ScriptControls
|
||||
from ghidra.framework import Application
|
||||
@@ -276,7 +277,7 @@ class PyConsole(InteractiveConsole):
|
||||
self.reset()
|
||||
|
||||
@contextlib.contextmanager
|
||||
def redirect_writer(self):
|
||||
def redirect_writer(self) -> Generator[None, None, None]:
|
||||
self._writer = self._err
|
||||
try:
|
||||
yield
|
||||
@@ -292,7 +293,7 @@ class PyConsole(InteractiveConsole):
|
||||
super().showtraceback()
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _run_context(self):
|
||||
def _run_context(self) -> Generator[None, None, None]:
|
||||
self._script.start()
|
||||
success = False
|
||||
try:
|
||||
|
||||
@@ -29,7 +29,7 @@ import tempfile
|
||||
import threading
|
||||
from importlib.machinery import ModuleSpec
|
||||
from pathlib import Path
|
||||
from typing import List, NoReturn, Tuple, Union
|
||||
from typing import Generator, List, NoReturn, Tuple, Union
|
||||
|
||||
import jpype
|
||||
from jpype import imports, _jpype
|
||||
@@ -43,7 +43,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _silence_java_output(stdout=True, stderr=True):
|
||||
def _silence_java_output(stdout=True, stderr=True) -> Generator[None, None, None]:
|
||||
from java.io import OutputStream, PrintStream # type:ignore @UnresolvedImport
|
||||
from java.lang import System # type:ignore @UnresolvedImport
|
||||
out = System.out
|
||||
|
||||
Reference in New Issue
Block a user