Metadata-Version: 2.1
Name: ghidra-stubs
Version: 11.4.2
Summary: Ghidra Type Stubs
Maintainer: Ghidra Development Team
License: Apache-2.0
Keywords: ghidra
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Typing :: Stubs Only
Description-Content-Type: text/markdown
License-File: LICENSE

# Ghidra Type Stubs

The Ghidra Type Stubs library is a [PEP 561 stubs package][pep-0561] for the 
[Ghidra API](https://github.com/NationalSecurityAgency/ghidra). The stub files can be used to 
improve your development experience in supported editors like PyCharm and Visual Studio Code.

## Installation 

The stubs can be installed with `pip install ghidra-stubs*.whl` into the environment in which the 
real Ghidra module (i.e., `pyghidra`) is available. Any conformant tool will then use the stubs 
package for type analysis purposes.  

## Usage

Once installed, all you need to do is import the Ghidra modules as usual, and your supported editor
will do the rest.

```python
import pyghidra
```

To get support for the Ghidra builtins, you need to import them as well. The type hints for those 
exist in the generated `ghidra_builtins` stub. Since it is not a real Python module, importing it at
runtime will fail.

```python
try:
    from ghidra.ghidra_builtins import *
except:
    pass
```

If you are using [PyGhidra](https://pypi.org/project/pyghidra/) from a Python 3 environment where no
real `ghidra` module exists you can use a snippet like the following:

```python
import typing
if typing.TYPE_CHECKING:
    from ghidra.ghidra_builtins import *

# actual code follows here
```

`typing.TYPE_CHECKING` is a special value that is always `False` at runtime but `True` during any 
kind of type checking or completion.

Once done, just code & enjoy.

[pep-0484]: https://www.python.org/dev/peps/pep-0484/
[pep-0561]: https://www.python.org/dev/peps/pep-0561/#stub-only-packages
