Extensions allow extending the debugger without modifying the debugger code.
This is implemented with explicit namespace packages.

To implement your own extension ...

1. Ensure that the root folder of your extension is in `sys.path` (add it to `PYTHONPATH`) 
2. Ensure that your module follows the directory structure below
3. The `__init__.py` files inside the pydevd_plugin and extension folder must contain the preamble below,
   and nothing else
4. Your plugin name inside the extensions folder must start with `pydevd_plugin`
5. Implement one or more of the abstract base classes defined in `_pydevd_bundle.pydevd_extension_api`,
   this can be done by either inheriting from them or registering with the abstract base class

# Preamble

```python
import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)
```

# Directory Structure

```
|--  root_directory-> must be on python path
|    |-- pydevd_plugins
|    |   |-- __init__.py -> must contain preamble
|    |   |-- extensions
|    |   |   |-- __init__.py -> must contain preamble
|    |   |   |-- pydevd_plugin_plugin_name.py
```
