constants.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. # Copyright (c) Alibaba, Inc. and its affiliates.
  2. import os
  3. from pathlib import Path
  4. MODELSCOPE_URL_SCHEME = 'https://'
  5. DEFAULT_MODELSCOPE_DOMAIN = 'www.modelscope.cn'
  6. DEFAULT_MODELSCOPE_INTL_DOMAIN = 'www.modelscope.ai'
  7. DEFAULT_MODELSCOPE_DATA_ENDPOINT = MODELSCOPE_URL_SCHEME + DEFAULT_MODELSCOPE_DOMAIN
  8. DEFAULT_MODELSCOPE_INTL_DATA_ENDPOINT = MODELSCOPE_URL_SCHEME + DEFAULT_MODELSCOPE_INTL_DOMAIN
  9. MODELSCOPE_PARALLEL_DOWNLOAD_THRESHOLD_MB = int(
  10. os.environ.get('MODELSCOPE_PARALLEL_DOWNLOAD_THRESHOLD_MB', 500))
  11. MODELSCOPE_DOWNLOAD_PARALLELS = int(
  12. os.environ.get('MODELSCOPE_DOWNLOAD_PARALLELS', 1))
  13. DEFAULT_MODELSCOPE_GROUP = 'damo'
  14. MODEL_ID_SEPARATOR = '/'
  15. FILE_HASH = 'Sha256'
  16. LOGGER_NAME = 'ModelScopeHub'
  17. DEFAULT_CREDENTIALS_PATH = Path.home().joinpath('.modelscope', 'credentials')
  18. MODELSCOPE_CREDENTIALS_PATH = os.environ.get(
  19. 'MODELSCOPE_CREDENTIALS_PATH', DEFAULT_CREDENTIALS_PATH.as_posix())
  20. REQUESTS_API_HTTP_METHOD = ['get', 'head', 'post', 'put', 'patch', 'delete']
  21. API_HTTP_CLIENT_TIMEOUT = 60
  22. API_HTTP_CLIENT_MAX_RETRIES = 2
  23. API_RESPONSE_FIELD_DATA = 'Data'
  24. API_FILE_DOWNLOAD_RETRY_TIMES = 5
  25. API_FILE_DOWNLOAD_TIMEOUT = 60
  26. API_FILE_DOWNLOAD_CHUNK_SIZE = 1024 * 1024 * 1
  27. API_RESPONSE_FIELD_GIT_ACCESS_TOKEN = 'AccessToken'
  28. API_RESPONSE_FIELD_USERNAME = 'Username'
  29. API_RESPONSE_FIELD_EMAIL = 'Email'
  30. API_RESPONSE_FIELD_MESSAGE = 'Message'
  31. MODELSCOPE_CLOUD_ENVIRONMENT = 'MODELSCOPE_ENVIRONMENT'
  32. MODELSCOPE_CLOUD_USERNAME = 'MODELSCOPE_USERNAME'
  33. MODELSCOPE_SDK_DEBUG = 'MODELSCOPE_SDK_DEBUG'
  34. MODELSCOPE_PREFER_AI_SITE = 'MODELSCOPE_PREFER_AI_SITE'
  35. MODELSCOPE_DOMAIN = 'MODELSCOPE_DOMAIN'
  36. MODELSCOPE_ENABLE_DEFAULT_HASH_VALIDATION = 'MODELSCOPE_ENABLE_DEFAULT_HASH_VALIDATION'
  37. ONE_YEAR_SECONDS = 24 * 365 * 60 * 60
  38. MODELSCOPE_REQUEST_ID = 'X-Request-ID'
  39. TEMPORARY_FOLDER_NAME = '._____temp'
  40. DEFAULT_MAX_WORKERS = int(
  41. os.getenv('DEFAULT_MAX_WORKERS', min(8,
  42. os.cpu_count() + 4)))
  43. # Upload check env
  44. UPLOAD_MAX_FILE_SIZE = int(
  45. os.environ.get('UPLOAD_MAX_FILE_SIZE', 100 * 1024**3))
  46. UPLOAD_SIZE_THRESHOLD_TO_ENFORCE_LFS = int(
  47. os.environ.get('UPLOAD_SIZE_THRESHOLD_TO_ENFORCE_LFS', 1 * 1024 * 1024))
  48. UPLOAD_MAX_FILE_COUNT = int(os.environ.get('UPLOAD_MAX_FILE_COUNT', 100_000))
  49. UPLOAD_MAX_FILE_COUNT_IN_DIR = int(
  50. os.environ.get('UPLOAD_MAX_FILE_COUNT_IN_DIR', 50_000))
  51. UPLOAD_NORMAL_FILE_SIZE_TOTAL_LIMIT = int(
  52. os.environ.get('UPLOAD_NORMAL_FILE_SIZE_TOTAL_LIMIT', 500 * 1024 * 1024))
  53. UPLOAD_COMMIT_BATCH_SIZE = int(os.environ.get('UPLOAD_COMMIT_BATCH_SIZE', 512))
  54. UPLOAD_BLOB_TQDM_DISABLE_THRESHOLD = 20 * 1024 * 1024
  55. MODELSCOPE_ASCII = r"""
  56. _ .-') _ .-') _ ('-. .-') _ (`-. ('-.
  57. ( '.( OO )_ ( ( OO) ) _( OO) ( OO ). ( (OO ) _( OO)
  58. ,--. ,--.).-'),-----. \ .'_ (,------.,--. (_)---\_) .-----. .-'),-----. _.` \(,------.
  59. | `.' |( OO' .-. ',`'--..._) | .---'| |.-') / _ | ' .--./ ( OO' .-. '(__...--'' | .---'
  60. | |/ | | | || | \ ' | | | | OO )\ :` `. | |('-. / | | | | | / | | | |
  61. | |'.'| |\_) | |\| || | ' |(| '--. | |`-' | '..`''.) /_) |OO )\_) | |\| | | |_.' |(| '--.
  62. | | | | \ | | | || | / : | .--'(| '---.'.-._) \ || |`-'| \ | | | | | .___.' | .--'
  63. | | | | `' '-' '| '--' / | `---.| | \ /(_' '--'\ `' '-' ' | | | `---.
  64. `--' `--' `-----' `-------' `------'`------' `-----' `-----' `-----' `--' `------'
  65. """# noqa
  66. class Licenses(object):
  67. APACHE_V2 = 'Apache License 2.0'
  68. GPL_V2 = 'GPL-2.0'
  69. GPL_V3 = 'GPL-3.0'
  70. LGPL_V2_1 = 'LGPL-2.1'
  71. LGPL_V3 = 'LGPL-3.0'
  72. AFL_V3 = 'AFL-3.0'
  73. ECL_V2 = 'ECL-2.0'
  74. MIT = 'MIT'
  75. @classmethod
  76. def to_list(cls):
  77. return [
  78. cls.APACHE_V2,
  79. cls.GPL_V2,
  80. cls.GPL_V3,
  81. cls.LGPL_V2_1,
  82. cls.LGPL_V3,
  83. cls.AFL_V3,
  84. cls.ECL_V2,
  85. cls.MIT,
  86. ]
  87. class ModelVisibility(object):
  88. PRIVATE = 1
  89. INTERNAL = 3
  90. PUBLIC = 5
  91. class DatasetVisibility(object):
  92. PRIVATE = 1
  93. INTERNAL = 3
  94. PUBLIC = 5
  95. class Visibility(object):
  96. PRIVATE = 'private'
  97. INTERNAL = 'internal'
  98. PUBLIC = 'public'
  99. VisibilityMap = {
  100. ModelVisibility.PRIVATE: Visibility.PRIVATE,
  101. ModelVisibility.INTERNAL: Visibility.INTERNAL,
  102. ModelVisibility.PUBLIC: Visibility.PUBLIC
  103. }
  104. class SortKey(object):
  105. DEFAULT = 'default'
  106. DOWNLOADS = 'downloads'
  107. LIKES = 'likes'
  108. LAST_MODIFIED = 'last_modified'
  109. VALID_SORT_KEYS = {
  110. SortKey.DEFAULT,
  111. SortKey.DOWNLOADS,
  112. SortKey.LIKES,
  113. SortKey.LAST_MODIFIED,
  114. }