code: def viable_source_types (target_type):
      
      assert isinstance(target_type, basestring)
      if target_type not in __viable_source_types_cache:
          __vst_cached_types.append(target_type)
          __viable_source_types_cache [target_type] = __viable_source_types_real (target_type)
      return __viable_source_types_cache [target_type]
docs: Helper rule, caches the result of '__viable_source_types_real'.