iota/commands/__init__.py
def discover_commands(package, recursively=True):
  # type: (Union[ModuleType, Text], bool) -> Dict[Text, 'CommandMeta']
  """
  Automatically discover commands in the specified package.

  :param package:
    Package path or reference.

  :param recursively:
    If True, will descend recursively into sub-packages.

  :return:
    All commands discovered in the specified package, indexed by
    command name (note: not class name).
  """
  # http://stackoverflow.com/a/25562415/
  if isinstance(package, string_types):
    package = import_module(package) # type: ModuleType

  commands = {}

  for _, name, is_package in walk_packages(package.__path__, package.__name__ + '.'):
    # Loading the module is good enough; the CommandMeta metaclass will
    # ensure that any commands in the module get registered.

    # Prefix in name module move to function "walk_packages" for fix
    # conflict with names importing packages
    # Bug https://github.com/iotaledger/iota.lib.py/issues/63
    sub_package = import_module(name)

    # Index any command classes that we find.
    for (_, obj) in get_members(sub_package):
      if is_class(obj) and isinstance(obj, CommandMeta):
        command_name = getattr(obj, 'command')
        if command_name:
          commands[command_name] = obj

    if recursively and is_package:
      commands.update(discover_commands(sub_package))

  return commands
def discover_commands(package, recursively=True):
  # type: (Union[ModuleType, Text], bool) -> Dict[Text, 'CommandMeta']
  # http://stackoverflow.com/a/25562415/
  if isinstance(package, string_types):
    package = import_module(package) # type: ModuleType

  commands = {}

  for _, name, is_package in walk_packages(package.__path__, package.__name__ + '.'):
    # Loading the module is good enough; the CommandMeta metaclass will
    # ensure that any commands in the module get registered.

    # Prefix in name module move to function "walk_packages" for fix
    # conflict with names importing packages
    # Bug https://github.com/iotaledger/iota.lib.py/issues/63
    sub_package = import_module(name)

    # Index any command classes that we find.
    for (_, obj) in get_members(sub_package):
      if is_class(obj) and isinstance(obj, CommandMeta):
        command_name = getattr(obj, 'command')
        if command_name:
          commands[command_name] = obj

    if recursively and is_package:
      commands.update(discover_commands(sub_package))

  return commands
def discover_commands ( package , recursively = True ) : # type: (Union[ModuleType, Text], bool) -> Dict[Text, 'CommandMeta'] # http://stackoverflow.com/a/25562415/ if isinstance ( package , string_types ) : package = import_module ( package ) # type: ModuleType commands = { } for _ , name , is_package in walk_packages ( package . __path__ , package . __name__ + '.' ) : # Loading the module is good enough; the CommandMeta metaclass will # ensure that any commands in the module get registered. # Prefix in name module move to function "walk_packages" for fix # conflict with names importing packages # Bug https://github.com/iotaledger/iota.lib.py/issues/63 sub_package = import_module ( name ) # Index any command classes that we find. for ( _ , obj ) in get_members ( sub_package ) : if is_class ( obj ) and isinstance ( obj , CommandMeta ) : command_name = getattr ( obj , 'command' ) if command_name : commands [ command_name ] = obj if recursively and is_package : commands . update ( discover_commands ( sub_package ) ) return commands
Automatically discover commands in the specified package.

  :param package:
    Package path or reference.

  :param recursively:
    If True, will descend recursively into sub-packages.

  :return:
    All commands discovered in the specified package, indexed by
    command name (note: not class name).
Automatically discover commands in the specified package .