You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4 mesi fa
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from enum import StrEnum
  2. class FileType(StrEnum):
  3. IMAGE = "image"
  4. DOCUMENT = "document"
  5. AUDIO = "audio"
  6. VIDEO = "video"
  7. CUSTOM = "custom"
  8. @staticmethod
  9. def value_of(value):
  10. for member in FileType:
  11. if member.value == value:
  12. return member
  13. raise ValueError(f"No matching enum found for value '{value}'")
  14. class FileTransferMethod(StrEnum):
  15. REMOTE_URL = "remote_url"
  16. LOCAL_FILE = "local_file"
  17. TOOL_FILE = "tool_file"
  18. DATASOURCE_FILE = "datasource_file"
  19. @staticmethod
  20. def value_of(value):
  21. for member in FileTransferMethod:
  22. if member.value == value:
  23. return member
  24. raise ValueError(f"No matching enum found for value '{value}'")
  25. class FileBelongsTo(StrEnum):
  26. USER = "user"
  27. ASSISTANT = "assistant"
  28. @staticmethod
  29. def value_of(value):
  30. for member in FileBelongsTo:
  31. if member.value == value:
  32. return member
  33. raise ValueError(f"No matching enum found for value '{value}'")
  34. class FileAttribute(StrEnum):
  35. TYPE = "type"
  36. SIZE = "size"
  37. NAME = "name"
  38. MIME_TYPE = "mime_type"
  39. TRANSFER_METHOD = "transfer_method"
  40. URL = "url"
  41. EXTENSION = "extension"
  42. RELATED_ID = "related_id"
  43. class ArrayFileAttribute(StrEnum):
  44. LENGTH = "length"