# scriptingprovider module

`binaryninja.scriptingprovider.PythonScriptingInstance`(...) |
`binaryninja.scriptingprovider.PythonScriptingProvider`([...]) |
`binaryninja.scriptingprovider.ScriptingInstance`(...) |
`binaryninja.scriptingprovider.ScriptingOutputListener` |
`binaryninja.scriptingprovider.ScriptingProvider`([...]) |
`binaryninja.scriptingprovider.range`(*args) | A Python2 and Python3 Compatible Range Generator
`binaryninja.scriptingprovider.redirect_stdio`() |
`binaryninja.scriptingprovider.with_metaclass`(...) | Create a base class with a metaclass.

class `binaryninja.scriptingprovider.``PythonScriptingInstance`(provider)

  Bases: `binaryninja.scriptingprovider.ScriptingInstance`

  class `InterpreterThread`(instance)

    Bases: `threading.Thread`

    `add_input`(data)
    `end`()
    `execute`(code)
    `get_selected_data`()
    `read`(size)
    `run`()
    `write_at_cursor`(data)
  `PythonScriptingInstance.``perform_destroy_instance`()
  `PythonScriptingInstance.``perform_execute_script_input`(text)
  `PythonScriptingInstance.``perform_set_current_address`(addr)
  `PythonScriptingInstance.``perform_set_current_basic_block`(block)
  `PythonScriptingInstance.``perform_set_current_binary_view`(view)
  `PythonScriptingInstance.``perform_set_current_function`(func)
  `PythonScriptingInstance.``perform_set_current_selection`(begin, end)

class `binaryninja.scriptingprovider.``PythonScriptingProvider`(handle=None)

  Bases: `binaryninja.scriptingprovider.ScriptingProvider`

  `instance_class`

    alias of `PythonScriptingInstance`

  `name` = 'Python'

class `binaryninja.scriptingprovider.``ScriptingInstance`(provider, handle=None)

  Bases: `object`

  `error`(text)
  `execute_script_input`(text)
  `input_ready_state`
  `output`(text)
  `perform_destroy_instance`()
  `perform_execute_script_input`(text)
  `perform_set_current_address`(addr)
  `perform_set_current_basic_block`(block)
  `perform_set_current_binary_view`(view)
  `perform_set_current_function`(func)
  `perform_set_current_selection`(begin, end)
  `register_output_listener`(listener)
  `set_current_address`(addr)
  `set_current_basic_block`(block)
  `set_current_binary_view`(view)
  `set_current_function`(func)
  `set_current_selection`(begin, end)
  `unregister_output_listener`(listener)

class `binaryninja.scriptingprovider.``ScriptingOutputListener`

  Bases: `object`

  `notify_error`(text)
  `notify_input_ready_state_changed`(state)
  `notify_output`(text)

class `binaryninja.scriptingprovider.``ScriptingProvider`(handle=None)

  Bases: `object`

  `create_instance`()
  `instance_class` = None
  `list` = [<binaryninja.scriptingprovider.ScriptingProvider object>]
  `name` = None
  `register`()

`binaryninja.scriptingprovider.``redirect_stdio`()