Search function that runs in the console, works great, but the question is, how to make an addon that allows a user to run the search in the console? Here is the code, devoid of any addon code, paste it into the console, and you will be amazed at the power (after you read the directions of course) But after this code, I am posting the attempt to make an addon, and I don’t know how to make it so it will make the functions available in the console!
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# Search Usage example:
# searchitem = 'sin'
# modulename = 'mathutils'
# search(searchitem, modulename='bpy')
# Default search is bpy module
# Note: **search imports any modules that you search**
#
# Searchable Standalone Modules (for the above parameter "modulename")
# aud, bgl, bl_math, blf, bmesh, bpy, bpy_extras,
# freestyle, gpu, gpu_extras, idprop, imbuf, mathutils, math
# If you enter only the searchitem, it will search the bpy module.
#
# Search Extended Usage example:
# searchitem = 'hypo'
# searchx(searchitem)
# searchx is (search extended)
# !!! Global search. **imports ALL standalone modules.** !!!
# That means, after using this to find what you need, you may want to close Blender and re-open it
# to clear out all of the imported modules before starting on a project!
#
# If you can't crack it, hack it! Yes, I just hacked Blender, oh no!!!
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
import bpy
def search(searchitem, modulename='bpy'):
search_list = []
if(modulename=='bpy'):
bpylist = dir(bpy)
bpylist.insert(0, 'bpy')
bpy_app_list = dir(bpy.app)
bpy_app_list.insert(0, 'bpy.app')
bpy_context_list = dir(bpy.context)
bpy_context_list.insert(0, 'bpy.context')
bpy_data_list = dir(bpy.data)
bpy_data_list.insert(0, 'bpy.data')
bpy_msgbus_list = dir(bpy.msgbus)
bpy_msgbus_list.insert(0, 'bpy.msgbus')
bpy_ops_list = dir(bpy.ops)
bpy_ops_list.insert(0, 'bpy.ops')
bpy_path_list = dir(bpy.path)
bpy_path_list.insert(0, 'bpy.path')
bpy_props_list = dir(bpy.props)
bpy_props_list.insert(0, 'bpy.props')
bpy_types_list = dir(bpy.types)
bpy_types_list.insert(0, 'bpy.types')
bpy_utils_list = dir(bpy.utils)
bpy_utils_list.insert(0, 'bpy.utils')
search_list = [[bpylist], [bpy_app_list], [bpy_context_list], [bpy_data_list], [bpy_msgbus_list], [bpy_ops_list], [bpy_path_list], [bpy_props_list], [bpy_types_list]]
#
if(modulename=='mathutils'):
import mathutils
mathutils_list = dir(mathutils)
mathutils_list.insert(0, 'import mathutils, mathutils')
search_list = [[mathutils_list]]
#
if(modulename=='math'):
import math
math_list = dir(math)
math_list.insert(0, 'import math, math')
search_list = [[math_list]]
#
if(modulename=='aud'):
import aud
aud_list = dir(aud)
aud_list.insert(0, 'import aud, aud')
search_list = [[aud_list]]
#
if(modulename=='bgl'):
import bgl
bgl_list = dir(bgl)
bgl_list.insert(0, 'import bgl, bgl')
search_list = [[bgl_list]]
#
if(modulename=='bl_math'):
import bl_math
bl_math_list = dir(bl_math)
bl_math_list.insert(0, 'import bl_math, bl_math')
search_list = [[bl_math_list]]
#
if(modulename=='blf'):
import blf
blf_list = dir(blf)
blf_list.insert(0, 'import blf, blf')
search_list = [[blf_list]]
#
if(modulename=='bmesh'):
import bmesh
bmesh_list = dir(bmesh)
bmesh_list.insert(0, 'import bmesh, bmesh')
bmesh_geometry_list = dir(bmesh.geometry)
bmesh_geometry_list.insert(0, 'import bmesh, bmesh.geometry')
bmesh_ops_list = dir(bmesh.ops)
bmesh_ops_list.insert(0, 'import bmesh, bmesh.ops')
bmesh_types_list = dir(bmesh.types)
bmesh_types_list.insert(0, 'import bmesh, bmesh.types')
bmesh_utils_list = dir(bmesh.utils)
bmesh_utils_list.insert(0, 'import bmesh, bmesh.utils')
search_list = [[bmesh_list], [bmesh_geometry_list], [bmesh_ops_list], [bmesh_types_list], [bmesh_utils_list]]
#
if(modulename=='bpy_extras'):
import bpy_extras
bpy_extras_list = dir(bpy_extras)
bpy_extras_list.insert(0, 'import bpy_extras, bpy_extras')
bpy_extras_io_utils_list = dir(bpy_extras.io_utils)
bpy_extras_io_utils_list.insert(0, 'import bpy_extras, bpy_extras.io_utils')
bpy_extras_node_utils_list = dir(bpy_extras.node_utils)
bpy_extras_node_utils_list.insert(0, 'import bpy_extras, bpy_extras.node_utils')
bpy_extras_object_utils_list = dir(bpy_extras.object_utils)
bpy_extras_object_utils_list.insert(0, 'import bpy_extras, bpy_extras.object_utils')
search_list = [[bpy_extras_list], [bpy_extras_io_utils_list], [bpy_extras_node_utils_list], [bpy_extras_object_utils_list]]
#
if(modulename=='freestyle'):
import freestyle
freestyle_list = dir(freestyle)
freestyle_list.insert(0, 'import freestyle, a standalone module')
freestyle_chainingiterators_list = dir(freestyle.chainingiterators)
freestyle_chainingiterators_list.insert(0, 'import freestyle, freestyle.chainingiterators')
freestyle_functions_list = dir(freestyle.functions)
freestyle_functions_list.insert(0, 'import freestyle, freestyle.functions')
freestyle_predicates_list = dir(freestyle.predicates)
freestyle_predicates_list.insert(0, 'import freestyle, freestyle.predicates')
freestyle_shaders_list = dir(freestyle.shaders)
freestyle_shaders_list.insert(0, 'import freestyle, freestyle.shaders')
freestyle_types_list = dir(freestyle.types)
freestyle_types_list.insert(0, 'import freestyle, freestyle.types')
freestyle_utils_list = dir(freestyle.utils)
freestyle_utils_list.insert(0, 'import freestyle, freestyle.utils')
search_list = [[freestyle_list], [freestyle_chainingiterators_list], [freestyle_functions_list], [freestyle_predicates_list], [freestyle_shaders_list], [freestyle_types_list], [freestyle_utils_list]]
#
if(modulename=='gpu'):
import gpu
gpu_list = dir(gpu)
gpu_list.insert(0, 'gpu, gpu')
gpu_types_list = dir(gpu.types)
gpu_types_list.insert(0, 'import gpu, gpu.types')
gpu_matrix_list = dir(gpu.matrix)
gpu_matrix_list.insert(0, 'import gpu, gpu.matrix')
gpu_select_list = dir(gpu.select)
gpu_select_list.insert(0, 'import gpu, gpu.select')
gpu_shader_list = dir(gpu.shader)
gpu_shader_list.insert(0, 'import gpu, gpu.shader')
search_list = [[gpu_list], [gpu_types_list], [gpu_matrix_list], [gpu_select_list], [gpu_shader_list]]
#
if(modulename=='gpu_extras'):
import gpu_extras
gpu_extras_list = dir(gpu_extras)
gpu_extras_list.insert(0, 'gpu_extras, gpu_extras')
search_list = [[gpu_extras_list]]
#
if(modulename=='idprop'):
import idprop
idprop_types_list = dir(idprop.types)
idprop_types_list.insert(0, 'import idprop, idprop.types')
search_list = [[idprop_types_list]]
#
if(modulename=='imbuf'):
import imbuf
imbuf_list = dir(imbuf)
imbuf_list.insert(0, 'import imbuf, imbuf')
search_list = [[imbuf_list]]
#
notfound = True
if(len(search_list)>1): # Print "Module not found." if list is empty.
for lol in search_list:
for list in lol:
for item in list:
if searchitem.lower() in item.lower():
print(list[0] + "." + item)
notfound = False
else:
print('Module not found.')
if(notfound):
print('Item not found')
print()
print('Searchable Standalone Modules:')
print('aud, bgl, bl_math, blf, bmesh, bpy, bpy_extras,')
print('freestyle, gpu, gpu_extras, idprop, imbuf, mathutils, math')
def searchx(searchitem):
import mathutils
mathutils_array = dir(mathutils)
mathutils_array.insert(0, 'import mathutils, mathutils')
#
import math
math_array = dir(math)
math_array.insert(0, 'import math, math')
#
import aud
aud_array = dir(aud)
aud_array.insert(0, 'import aud, aud')
#
import bgl
bgl_array = dir(bgl)
bgl_array.insert(0, 'import bgl, bgl')
#
import bl_math
bl_math_array = dir(bl_math)
bl_math_array.insert(0, 'import bl_math, bl_math')
#
import blf
blf_array = dir(blf)
blf_array.insert(0, 'import blf, blf')
#
import bmesh
bmesh_array = dir(bmesh)
bmesh_array.insert(0, 'import bmesh, bmesh')
bmesh_geometry_array = dir(bmesh.geometry)
bmesh_geometry_array.insert(0, 'import bmesh, bmesh.geometry')
bmesh_ops_array = dir(bmesh.ops)
bmesh_ops_array.insert(0, 'import bmesh, bmesh.ops')
bmesh_types_array = dir(bmesh.types)
bmesh_types_array.insert(0, 'import bmesh, bmesh.types')
bmesh_utils_array = dir(bmesh.utils)
bmesh_utils_array.insert(0, 'import bmesh, bmesh.utils')
#
import bpy_extras
bpy_extras_array = dir(bpy_extras)
bpy_extras_array.insert(0, 'import bpy_extras, bpy_extras')
bpy_extras_io_utils_array = dir(bpy_extras.io_utils)
bpy_extras_io_utils_array.insert(0, 'import bpy_extras, bpy_extras.io_utils')
bpy_extras_node_utils_array = dir(bpy_extras.node_utils)
bpy_extras_node_utils_array.insert(0, 'import bpy_extras, bpy_extras.node_utils')
bpy_extras_object_utils_array = dir(bpy_extras.object_utils)
bpy_extras_object_utils_array.insert(0, 'import bpy_extras, bpy_extras.object_utils')
#
import freestyle
freestyle_array = dir(freestyle)
freestyle_array.insert(0, 'import freestyle, a standalone module')
freestyle_chainingiterators_array = dir(freestyle.chainingiterators)
freestyle_chainingiterators_array.insert(0, 'import freestyle, freestyle.chainingiterators')
freestyle_functions_array = dir(freestyle.functions)
freestyle_functions_array.insert(0, 'import freestyle, freestyle.functions')
freestyle_predicates_array = dir(freestyle.predicates)
freestyle_predicates_array.insert(0, 'import freestyle, freestyle.predicates')
freestyle_shaders_array = dir(freestyle.shaders)
freestyle_shaders_array.insert(0, 'import freestyle, freestyle.shaders')
freestyle_types_array = dir(freestyle.types)
freestyle_types_array.insert(0, 'import freestyle, freestyle.types')
freestyle_utils_array = dir(freestyle.utils)
freestyle_utils_array.insert(0, 'import freestyle, freestyle.utils')
#
import gpu
gpu_array = dir(gpu)
gpu_array.insert(0, 'gpu, gpu')
gpu_types_array = dir(gpu.types)
gpu_types_array.insert(0, 'import gpu, gpu.types')
gpu_matrix_array = dir(gpu.matrix)
gpu_matrix_array.insert(0, 'import gpu, gpu.matrix')
gpu_select_array = dir(gpu.select)
gpu_select_array.insert(0, 'import gpu, gpu.select')
gpu_shader_array = dir(gpu.shader)
gpu_shader_array.insert(0, 'import gpu, gpu.shader')
#
import gpu_extras
gpu_extras_array = dir(gpu_extras)
gpu_extras_array.insert(0, 'gpu_extras, gpu_extras')
#
import idprop.types
idprop_types_array = dir(idprop.types)
idprop_types_array.insert(0, 'import idprop, idprop.types')
#
import imbuf
imbuf_array = dir(imbuf)
imbuf_array.insert(0, 'import imbuf, imbuf')
#
notfound = True
searchx_arrays = [mathutils_array, math_array, aud_array, bgl_array, bl_math_array, blf_array, bmesh_array, bmesh_geometry_array, bmesh_ops_array, bmesh_types_array, bmesh_utils_array, bpy_extras_array, bpy_extras_io_utils_array, bpy_extras_node_utils_array, bpy_extras_object_utils_array, freestyle_array, freestyle_chainingiterators_array, freestyle_functions_array, freestyle_predicates_array, freestyle_shaders_array, freestyle_types_array, freestyle_utils_array, gpu_array, gpu_types_array, gpu_matrix_array, gpu_select_array, gpu_shader_array, gpu_extras_array, idprop_types_array, imbuf_array]
for array in searchx_arrays:
for item in array:
if searchitem.lower() in item.lower():
print(array[0] + "." + item)
notfound = False
#
if(notfound):
print('Item not found')
So here is the attempt at addon code, but I just do not know how to make it allow the user to run in the console . . . . can that even be done?
bl_info = {
"name": "Search",
"description": "Keyword search Blender modules",
"author": "Archeus Lore *AKA* Shawn D Irwin",
"version": (1, 0),
"blender": (2, 91, 0),
"location": "Console",
"warning": "",
"doc_url": "www.archeuslore.com/blender/search.html",
"category": "Development",
}
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# Search Usage example:
# searchitem = 'sin'
# modulename = 'mathutils'
# search(searchitem, modulename='bpy')
# Default search is bpy module
# Note: **search imports any modules that you search**
#
# Searchable Standalone Modules (for the above parameter "modulename")
# aud, bgl, bl_math, blf, bmesh, bpy, bpy_extras,
# freestyle, gpu, gpu_extras, idprop, imbuf, mathutils, math
# If you enter only the searchitem, it will search the bpy module.
#
# Search Extended Usage example:
# searchitem = 'hypo'
# searchx(searchitem)
# searchx is (search extended)
# !!! Global search. **imports ALL modules.** !!!
# That means, after using this to find what you need, you may want to close Blender and re-open it
# to clear out all of the imported modules before starting on a project!
#
# If you can't crack it, hack it! Yes, we just hacked Blender, oh no!!!
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
import bpy
class Search(bpy.types.Operator):
"""Search Script""" # Use this as a tooltip for menu items and buttons.
bl_idname = "object.search" # Unique identifier for buttons and menu items to reference.
bl_label = "Search modules" # Display name in the interface.
bl_options = {'REGISTER'}
def search(searchitem, modulename='bpy'):
if(modulename=='bpy'):
bpylist = dir(bpy)
bpylist.insert(0, 'bpy')
bpy_app_list = dir(bpy.app)
bpy_app_list.insert(0, 'bpy.app')
bpy_context_list = dir(bpy.context)
bpy_context_list.insert(0, 'bpy.context')
bpy_data_list = dir(bpy.data)
bpy_data_list.insert(0, 'bpy.data')
bpy_msgbus_list = dir(bpy.msgbus)
bpy_msgbus_list.insert(0, 'bpy.msgbus')
bpy_ops_list = dir(bpy.ops)
bpy_ops_list.insert(0, 'bpy.ops')
bpy_path_list = dir(bpy.path)
bpy_path_list.insert(0, 'bpy.path')
bpy_props_list = dir(bpy.props)
bpy_props_list.insert(0, 'bpy.props')
bpy_types_list = dir(bpy.types)
bpy_types_list.insert(0, 'bpy.types')
bpy_utils_list = dir(bpy.utils)
bpy_utils_list.insert(0, 'bpy.utils')
search_list = [[bpylist], [bpy_app_list], [bpy_context_list], [bpy_data_list], [bpy_msgbus_list], [bpy_ops_list], [bpy_path_list], [bpy_props_list], [bpy_types_list]]
#
if(modulename=='mathutils'):
import mathutils
mathutils_list = dir(mathutils)
mathutils_list.insert(0, 'import mathutils, mathutils')
search_list = [[mathutils_list]]
#
if(modulename=='math'):
import math
math_list = dir(math)
math_list.insert(0, 'import math, math')
search_list = [[math_list]]
#
if(modulename=='aud'):
import aud
aud_list = dir(aud)
aud_list.insert(0, 'import aud, aud')
search_list = [[aud_list]]
#
if(modulename=='bgl'):
import bgl
bgl_list = dir(bgl)
bgl_list.insert(0, 'import bgl, bgl')
search_list = [[bgl_list]]
#
if(modulename=='bl_math'):
import bl_math
bl_math_list = dir(bl_math)
bl_math_list.insert(0, 'import bl_math, bl_math')
search_list = [[bl_math_list]]
#
if(modulename=='blf'):
import blf
blf_list = dir(blf)
blf_list.insert(0, 'import blf, blf')
search_list = [[blf_list]]
#
if(modulename=='bmesh'):
import bmesh
bmesh_list = dir(bmesh)
bmesh_list.insert(0, 'import bmesh, bmesh')
bmesh_geometry_list = dir(bmesh.geometry)
bmesh_geometry_list.insert(0, 'import bmesh, bmesh.geometry')
bmesh_ops_list = dir(bmesh.ops)
bmesh_ops_list.insert(0, 'import bmesh, bmesh.ops')
bmesh_types_list = dir(bmesh.types)
bmesh_types_list.insert(0, 'import bmesh, bmesh.types')
bmesh_utils_list = dir(bmesh.utils)
bmesh_utils_list.insert(0, 'import bmesh, bmesh.utils')
search_list = [[bmesh_list], [bmesh_geometry_list], [bmesh_ops_list], [bmesh_types_list], [bmesh_utils_list]]
#
if(modulename=='bpy_extras'):
import bpy_extras
bpy_extras_list = dir(bpy_extras)
bpy_extras_list.insert(0, 'import bpy_extras, bpy_extras')
bpy_extras_io_utils_list = dir(bpy_extras.io_utils)
bpy_extras_io_utils_list.insert(0, 'import bpy_extras, bpy_extras.io_utils')
bpy_extras_node_utils_list = dir(bpy_extras.node_utils)
bpy_extras_node_utils_list.insert(0, 'import bpy_extras, bpy_extras.node_utils')
bpy_extras_object_utils_list = dir(bpy_extras.object_utils)
bpy_extras_object_utils_list.insert(0, 'import bpy_extras, bpy_extras.object_utils')
search_list = [[bpy_extras_list], [bpy_extras_io_utils_list], [bpy_extras_node_utils_list], [bpy_extras_object_utils_list]]
#
if(modulename=='freestyle'):
import freestyle
freestyle_list = dir(freestyle)
freestyle_list.insert(0, 'import freestyle, a standalone module')
freestyle_chainingiterators_list = dir(freestyle.chainingiterators)
freestyle_chainingiterators_list.insert(0, 'import freestyle, freestyle.chainingiterators')
freestyle_functions_list = dir(freestyle.functions)
freestyle_functions_list.insert(0, 'import freestyle, freestyle.functions')
freestyle_predicates_list = dir(freestyle.predicates)
freestyle_predicates_list.insert(0, 'import freestyle, freestyle.predicates')
freestyle_shaders_list = dir(freestyle.shaders)
freestyle_shaders_list.insert(0, 'import freestyle, freestyle.shaders')
freestyle_types_list = dir(freestyle.types)
freestyle_types_list.insert(0, 'import freestyle, freestyle.types')
freestyle_utils_list = dir(freestyle.utils)
freestyle_utils_list.insert(0, 'import freestyle, freestyle.utils')
search_list = [[freestyle_list], [freestyle_chainingiterators_list], [freestyle_functions_list], [freestyle_predicates_list], [freestyle_shaders_list], [freestyle_types_list], [freestyle_utils_list]]
#
if(modulename=='gpu'):
import gpu
gpu_list = dir(gpu)
gpu_list.insert(0, 'gpu, gpu')
gpu_types_list = dir(gpu.types)
gpu_types_list.insert(0, 'import gpu, gpu.types')
gpu_matrix_list = dir(gpu.matrix)
gpu_matrix_list.insert(0, 'import gpu, gpu.matrix')
gpu_select_list = dir(gpu.select)
gpu_select_list.insert(0, 'import gpu, gpu.select')
gpu_shader_list = dir(gpu.shader)
gpu_shader_list.insert(0, 'import gpu, gpu.shader')
search_list = [[gpu_list], [gpu_types_list], [gpu_matrix_list], [gpu_select_list], [gpu_shader_list]]
#
if(modulename=='gpu_extras'):
import gpu_extras
gpu_extras_list = dir(gpu_extras)
gpu_extras_list.insert(0, 'gpu_extras, gpu_extras')
search_list = [[gpu_extras_list]]
#
if(modulename=='idprop'):
import idprop
idprop_types_list = dir(idprop.types)
idprop_types_list.insert(0, 'import idprop, idprop.types')
search_list = [[idprop_types_list]]
#
if(modulename=='imbuf'):
import imbuf
imbuf_list = dir(imbuf)
imbuf_list.insert(0, 'import imbuf, imbuf')
search_list = [[imbuf_list]]
#
notfound = True
for lol in search_list:
for list in lol:
for item in list:
if searchitem.lower() in item.lower():
print(list[0] + "." + item)
notfound = False
#
if(notfound):
print('Item not found')
print()
print('Searchable Standalone Modules:')
print('aud, bgl, bl_math, blf, bmesh, bpy, bpy_extras,')
print('freestyle, gpu, gpu_extras, idprop, imbuf, mathutils, math')
def searchx(searchitem):
import mathutils
mathutils_array = dir(mathutils)
mathutils_array.insert(0, 'import mathutils, mathutils')
#
import math
math_array = dir(math)
math_array.insert(0, 'import math, math')
#
import aud
aud_array = dir(aud)
aud_array.insert(0, 'import aud, aud')
#
import bgl
bgl_array = dir(bgl)
bgl_array.insert(0, 'import bgl, bgl')
#
import bl_math
bl_math_array = dir(bl_math)
bl_math_array.insert(0, 'import bl_math, bl_math')
#
import blf
blf_array = dir(blf)
blf_array.insert(0, 'import blf, blf')
#
import bmesh
bmesh_array = dir(bmesh)
bmesh_array.insert(0, 'import bmesh, bmesh')
bmesh_geometry_array = dir(bmesh.geometry)
bmesh_geometry_array.insert(0, 'import bmesh, bmesh.geometry')
bmesh_ops_array = dir(bmesh.ops)
bmesh_ops_array.insert(0, 'import bmesh, bmesh.ops')
bmesh_types_array = dir(bmesh.types)
bmesh_types_array.insert(0, 'import bmesh, bmesh.types')
bmesh_utils_array = dir(bmesh.utils)
bmesh_utils_array.insert(0, 'import bmesh, bmesh.utils')
#
import bpy_extras
bpy_extras_array = dir(bpy_extras)
bpy_extras_array.insert(0, 'import bpy_extras, bpy_extras')
bpy_extras_io_utils_array = dir(bpy_extras.io_utils)
bpy_extras_io_utils_array.insert(0, 'import bpy_extras, bpy_extras.io_utils')
bpy_extras_node_utils_array = dir(bpy_extras.node_utils)
bpy_extras_node_utils_array.insert(0, 'import bpy_extras, bpy_extras.node_utils')
bpy_extras_object_utils_array = dir(bpy_extras.object_utils)
bpy_extras_object_utils_array.insert(0, 'import bpy_extras, bpy_extras.object_utils')
#
import freestyle
freestyle_array = dir(freestyle)
freestyle_array.insert(0, 'import freestyle, a standalone module')
freestyle_chainingiterators_array = dir(freestyle.chainingiterators)
freestyle_chainingiterators_array.insert(0, 'import freestyle, freestyle.chainingiterators')
freestyle_functions_array = dir(freestyle.functions)
freestyle_functions_array.insert(0, 'import freestyle, freestyle.functions')
freestyle_predicates_array = dir(freestyle.predicates)
freestyle_predicates_array.insert(0, 'import freestyle, freestyle.predicates')
freestyle_shaders_array = dir(freestyle.shaders)
freestyle_shaders_array.insert(0, 'import freestyle, freestyle.shaders')
freestyle_types_array = dir(freestyle.types)
freestyle_types_array.insert(0, 'import freestyle, freestyle.types')
freestyle_utils_array = dir(freestyle.utils)
freestyle_utils_array.insert(0, 'import freestyle, freestyle.utils')
#
import gpu
gpu_array = dir(gpu)
gpu_array.insert(0, 'gpu, gpu')
gpu_types_array = dir(gpu.types)
gpu_types_array.insert(0, 'import gpu, gpu.types')
gpu_matrix_array = dir(gpu.matrix)
gpu_matrix_array.insert(0, 'import gpu, gpu.matrix')
gpu_select_array = dir(gpu.select)
gpu_select_array.insert(0, 'import gpu, gpu.select')
gpu_shader_array = dir(gpu.shader)
gpu_shader_array.insert(0, 'import gpu, gpu.shader')
#
import gpu_extras
gpu_extras_array = dir(gpu_extras)
gpu_extras_array.insert(0, 'gpu_extras, gpu_extras')
#
import idprop.types
idprop_types_array = dir(idprop.types)
idprop_types_array.insert(0, 'import idprop, idprop.types')
#
import imbuf
imbuf_array = dir(imbuf)
imbuf_array.insert(0, 'import imbuf, imbuf')
#
notfound = True
searchx_arrays = [mathutils_array, math_array, aud_array, bgl_array, bl_math_array, blf_array, bmesh_array, bmesh_geometry_array, bmesh_ops_array, bmesh_types_array, bmesh_utils_array, bpy_extras_array, bpy_extras_io_utils_array, bpy_extras_node_utils_array, bpy_extras_object_utils_array, freestyle_array, freestyle_chainingiterators_array, freestyle_functions_array, freestyle_predicates_array, freestyle_shaders_array, freestyle_types_array, freestyle_utils_array, gpu_array, gpu_types_array, gpu_matrix_array, gpu_select_array, gpu_shader_array, gpu_extras_array, idprop_types_array, imbuf_array]
for array in searchx_arrays:
for item in array:
if searchitem.lower() in item.lower():
print(array[0] + "." + item)
notfound = False
#
if(notfound):
print('Item not found')
def register():
bpy.utils.register_class(Search)
def unregister():
bpy.utils.unregister_class(Search)
# This allows you to run the script directly from Blender's Text editor
# to test the add-on without having to install it.
if __name__ == "__main__":
register()