_positions.py 650 B

1234567891011121314151617181920
  1. import os.path
  2. from core.helper.position_helper import get_tool_position_map, sort_by_position_map
  3. from core.tools.entities.api_entities import UserToolProvider
  4. class BuiltinToolProviderSort:
  5. _position = {}
  6. @classmethod
  7. def sort(cls, providers: list[UserToolProvider]) -> list[UserToolProvider]:
  8. if not cls._position:
  9. cls._position = get_tool_position_map(os.path.join(os.path.dirname(__file__), ".."))
  10. def name_func(provider: UserToolProvider) -> str:
  11. return provider.name
  12. sorted_providers = sort_by_position_map(cls._position, providers, name_func)
  13. return sorted_providers