code: def select(self, *features):
          
          for feature_name in features:
              feature_module = importlib.import_module(feature_name)
              # if available, import feature.py and select the feature
              try:
                  feature_spec_module = importlib.import_module(
                      feature_name + '.feature'
                  )
                  if not hasattr(feature_spec_module, 'select'):
                      raise CompositionError(
                          'Function %s.feature.select not found!\n '
                          'Feature modules need to specify a function'
                          ' select(composer).' % (
                              feature_name
                          )
                      )
                  args, varargs, keywords, defaults = inspect.getargspec(
                      feature_spec_module.select
                  )
                  if varargs or keywords or defaults or len(args) != 1:
                      raise CompositionError(
                          'invalid signature: %s.feature.select must '
                          'have the signature select(composer)' % (
                              feature_name
                          )
                      )
                  # call the feature`s select function
                  feature_spec_module.select(self)
              except ImportError:
                  # Unfortunately, python makes it really hard
                  # to distinguish missing modules from modules
                  # that contain errors.
                  # Hacks like parsing the exception message will
                  # not work reliably due to import hooks and such.
                  # Conclusion: features must contain a feature.py for now
  
                  # re-raise
                  raise
docs: selects the features given as string
          e.g
          passing 'hello' and 'world' will result in imports of
          'hello' and 'world'. Then, if possible 'hello.feature'
          and 'world.feature' are imported and select is called
          in each feature module.