model-library 0.1.1__py3-none-any.whl → 0.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. model_library/base/__init__.py +7 -0
  2. model_library/{base.py → base/base.py} +58 -429
  3. model_library/base/batch.py +121 -0
  4. model_library/base/delegate_only.py +94 -0
  5. model_library/base/input.py +100 -0
  6. model_library/base/output.py +229 -0
  7. model_library/base/utils.py +43 -0
  8. model_library/config/ai21labs_models.yaml +1 -0
  9. model_library/config/all_models.json +461 -36
  10. model_library/config/anthropic_models.yaml +30 -3
  11. model_library/config/deepseek_models.yaml +3 -1
  12. model_library/config/google_models.yaml +49 -0
  13. model_library/config/openai_models.yaml +43 -4
  14. model_library/config/together_models.yaml +1 -0
  15. model_library/config/xai_models.yaml +63 -3
  16. model_library/exceptions.py +8 -2
  17. model_library/file_utils.py +1 -1
  18. model_library/providers/__init__.py +0 -0
  19. model_library/providers/ai21labs.py +2 -0
  20. model_library/providers/alibaba.py +16 -78
  21. model_library/providers/amazon.py +3 -0
  22. model_library/providers/anthropic.py +215 -8
  23. model_library/providers/azure.py +2 -0
  24. model_library/providers/cohere.py +14 -80
  25. model_library/providers/deepseek.py +14 -90
  26. model_library/providers/fireworks.py +17 -81
  27. model_library/providers/google/google.py +55 -47
  28. model_library/providers/inception.py +15 -83
  29. model_library/providers/kimi.py +15 -83
  30. model_library/providers/mistral.py +2 -0
  31. model_library/providers/openai.py +10 -2
  32. model_library/providers/perplexity.py +12 -79
  33. model_library/providers/together.py +19 -210
  34. model_library/providers/vals.py +2 -0
  35. model_library/providers/xai.py +2 -0
  36. model_library/providers/zai.py +15 -83
  37. model_library/register_models.py +75 -57
  38. model_library/registry_utils.py +5 -5
  39. model_library/utils.py +3 -28
  40. {model_library-0.1.1.dist-info → model_library-0.1.3.dist-info}/METADATA +2 -3
  41. model_library-0.1.3.dist-info/RECORD +61 -0
  42. model_library-0.1.1.dist-info/RECORD +0 -54
  43. {model_library-0.1.1.dist-info → model_library-0.1.3.dist-info}/WHEEL +0 -0
  44. {model_library-0.1.1.dist-info → model_library-0.1.3.dist-info}/licenses/LICENSE +0 -0
  45. {model_library-0.1.1.dist-info → model_library-0.1.3.dist-info}/top_level.txt +0 -0
model_library/utils.py CHANGED
@@ -1,4 +1,3 @@
1
- import inspect
2
1
  import logging
3
2
  from collections.abc import Mapping, Sequence
4
3
  from typing import Any
@@ -8,6 +7,7 @@ from openai import AsyncOpenAI
8
7
  from pydantic.main import BaseModel
9
8
 
10
9
  MAX_LLM_LOG_LENGTH = 100
10
+ logger = logging.getLogger("llm")
11
11
 
12
12
 
13
13
  def truncate_str(s: str | None, max_len: int = MAX_LLM_LOG_LENGTH) -> str:
@@ -21,20 +21,8 @@ def truncate_str(s: str | None, max_len: int = MAX_LLM_LOG_LENGTH) -> str:
21
21
 
22
22
  def get_logger(name: str | None = None):
23
23
  if not name:
24
- caller = inspect.stack()[1]
25
- module = inspect.getmodule(caller[0])
26
- name = module.__name__ if module else "__main__"
27
-
28
- logger = logging.getLogger(name)
29
- if not logger.handlers:
30
- logger.setLevel(logging.DEBUG)
31
- handler = logging.StreamHandler()
32
- formatter = logging.Formatter(
33
- "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
34
- )
35
- handler.setFormatter(formatter)
36
- logger.addHandler(handler)
37
- return logger
24
+ return logger
25
+ return logging.getLogger(f"{logger.name}.{name}")
38
26
 
39
27
 
40
28
  def deep_model_dump(obj: object) -> object:
@@ -75,17 +63,6 @@ def create_openai_client_with_defaults(
75
63
  )
76
64
 
77
65
 
78
- def sum_optional(a: int | None, b: int | None) -> int | None:
79
- """Sum two optional integers, returning None if both are None.
80
-
81
- Preserves None to indicate "unknown/not provided" when both inputs are None,
82
- otherwise treats None as 0 for summation.
83
- """
84
- if a is None and b is None:
85
- return None
86
- return (a or 0) + (b or 0)
87
-
88
-
89
66
  def get_context_window_for_model(model_name: str, default: int = 128_000) -> int:
90
67
  """
91
68
  Get the context window for a model by looking up its configuration from the registry.
@@ -99,9 +76,7 @@ def get_context_window_for_model(model_name: str, default: int = 128_000) -> int
99
76
  """
100
77
  # import here to avoid circular imports
101
78
  from model_library.register_models import get_model_registry
102
- from model_library.utils import get_logger
103
79
 
104
- logger = get_logger(__name__)
105
80
  model_config = get_model_registry().get(model_name, None)
106
81
  if (
107
82
  model_config
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: model-library
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: Model Library for vals.ai
5
5
  Author-email: "Vals AI, Inc." <contact@vals.ai>
6
6
  License: MIT
@@ -17,12 +17,11 @@ Requires-Dist: tiktoken==0.11.0
17
17
  Requires-Dist: pillow
18
18
  Requires-Dist: openai<2.0,>=1.97.1
19
19
  Requires-Dist: anthropic<1.0,>=0.57.1
20
- Requires-Dist: together<2.0,>=1.5.25
21
20
  Requires-Dist: mistralai<2.0,>=1.9.10
22
21
  Requires-Dist: xai-sdk<2.0,>=1.0.0
23
22
  Requires-Dist: ai21<5.0,>=4.0.3
24
23
  Requires-Dist: boto3<2.0,>=1.38.27
25
- Requires-Dist: google-genai[aiohttp]<2.0,>=1.48.0
24
+ Requires-Dist: google-genai[aiohttp]>=1.51.0
26
25
  Requires-Dist: google-cloud-storage>=1.26.0
27
26
  Dynamic: license-file
28
27
 
@@ -0,0 +1,61 @@
1
+ model_library/__init__.py,sha256=AKc_15aklOf-LbcS9z1Xer_moRWNpG6Dh3kqvSQ0nOI,714
2
+ model_library/exceptions.py,sha256=BWM3Gk7Lh_H4ttKtkvr4zcj01_UXb8e1PbKn8bl5Fgg,8953
3
+ model_library/file_utils.py,sha256=FAZRRtDT8c4Rjfoj64Te3knEHggXAAfRRuS8WLCsSe8,3682
4
+ model_library/logging.py,sha256=McyaPHUk7RkB38-LrfnudrrU1B62ta8wAbbIBwLRmj0,853
5
+ model_library/model_utils.py,sha256=l8oCltGeimMGtnne_3Q1EguVtzCj61UMsLsma-1czwg,753
6
+ model_library/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ model_library/register_models.py,sha256=iVmzLDraUfzwF_bPz6DI2zMIeSUG1UQO9IdmGZTTui4,13853
8
+ model_library/registry_utils.py,sha256=Op1NnQGD0XZyP032pGJdWdHgdEoHwKOcoWNCihT69SE,6977
9
+ model_library/settings.py,sha256=QyeUqzWBpexFi014L_mZkoXP49no3SAQNJRObATXrL8,873
10
+ model_library/utils.py,sha256=jQqBbP9vafpuFxp7kb53XYvCAtW79FtFJelnGGPn-pQ,4011
11
+ model_library/base/__init__.py,sha256=TtxCXGUtkEqWZNMMofLPuC4orN7Ja2hemtbtHitt_UA,266
12
+ model_library/base/base.py,sha256=AyUt3XeFX3l1mVPf57IfqOnINdF3p2ziv5R3wz44VkM,14064
13
+ model_library/base/batch.py,sha256=-jd6L0ECc5pkj73zoX2ZYcv_9iQdqxEi1kEilwaXWSA,2895
14
+ model_library/base/delegate_only.py,sha256=V2MzENtvBg0pySKncgE-mfCLBhhRZ0y4BntQwQsxbqU,2111
15
+ model_library/base/input.py,sha256=Nhg8Ril1kFau1DnE8u102JC1l-vxNd-v9e3SjovR-Do,1876
16
+ model_library/base/output.py,sha256=v4s8Q_gYG2zxhhHQnDsAWFNPZHDx_kyLAhK7kxRhPjA,6673
17
+ model_library/base/utils.py,sha256=KJZRVWr38Tik3yNJvTXnBy62ccilzzmSxHZFpQBJMPo,1330
18
+ model_library/config/ai21labs_models.yaml,sha256=ykOwxkeWrhO98-V3sC5-FwXs0WLEeD1GZrM-VdTpF9o,2577
19
+ model_library/config/alibaba_models.yaml,sha256=2tIdj_7Qiw_-jZmutdtdJWyAXPl4WEFh1ij3ubymov0,2252
20
+ model_library/config/all_models.json,sha256=0i0aND49z9aBG19JpZp5Kk3Kt2nuj_mHaBJ9ZexYkwQ,497215
21
+ model_library/config/amazon_models.yaml,sha256=RGj7DH0IzXNs4JmAk6adC2jUEefVxBJNVQIB-n-fXbc,8988
22
+ model_library/config/anthropic_models.yaml,sha256=HszgDVQpv9EwSKwXd7T-eYIdQ3Ue07uNm8QjeRirFY0,11074
23
+ model_library/config/cohere_models.yaml,sha256=BQSqIsGUXvULeFLGDFJNBxen-6CC5hKNW2s4lSC8Np0,5186
24
+ model_library/config/deepseek_models.yaml,sha256=42bfyNZtaiOYx188FMqkfuCBSLNM1EBTYzf7hwzsjHw,1318
25
+ model_library/config/dummy_model.yaml,sha256=CTnSdFYC-KTsHt5TvS0echWwUlb_H3eATZL1tVIkXkM,915
26
+ model_library/config/fireworks_models.yaml,sha256=VG_Fo8X6qSA3VALn1SKehjj3B1HP0XO1fCYDdaCUdnM,5905
27
+ model_library/config/google_models.yaml,sha256=kymR44OrrTygVSqI2PH3ffbpVYRuoxsAVP9ERq2fS18,16855
28
+ model_library/config/inception_models.yaml,sha256=g6PC0qjEC2SUPTo2Rad34Dl8dt8ZBv1svaaP2_PIrYg,660
29
+ model_library/config/kimi_models.yaml,sha256=BySTLTc0m24oBC94VegosQgxpHglthe5dGRwF-fyduo,840
30
+ model_library/config/mistral_models.yaml,sha256=MjKEYFYcGBsFd6iXekE_1oGa3CmEWAVPABJR94gV6SE,3839
31
+ model_library/config/openai_models.yaml,sha256=iSrX7WAZoNJOmVxrtEStnvRc-Md9z0CFYAIcC7GC_w8,25130
32
+ model_library/config/perplexity_models.yaml,sha256=avTBrwnG-5Y6kle9t9vBrwcImhSzw-dgoYQuaw7K7Rs,2962
33
+ model_library/config/together_models.yaml,sha256=VA2cuo9hgrQW3yOz5sYfUcMoU_AgNifQ6k1MjiXO3jk,24454
34
+ model_library/config/xai_models.yaml,sha256=xqXhXT3vpYC1iMzdnotj75oJ98nOwY6oFQY4gobAOmg,9328
35
+ model_library/config/zai_models.yaml,sha256=lyAUPp4qOxkAAKCcbX48IKLaYYPAkp-Jn1wyCjLqmeA,1396
36
+ model_library/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ model_library/providers/ai21labs.py,sha256=7PnXKl-Fv8KlE95eBv2izbFg1u7utDRQPdWXYVl_-as,5832
38
+ model_library/providers/alibaba.py,sha256=k6LZErV_l9oTFTdKTwyw1SXD509Rl3AqFbN8umCryEE,2941
39
+ model_library/providers/amazon.py,sha256=Qd5zAEn71WVo6c8mpPW0gE7WHLarzKzh6r4b_R4FaYk,13137
40
+ model_library/providers/anthropic.py,sha256=6YI04jdDDtDjLS17jThVYlNvLbqd9THrKAtaVTYL6eg,22194
41
+ model_library/providers/azure.py,sha256=brQNCED-zHvYjL5K5hdjFBNso6hJZg0HTHNnAgJPPG0,1408
42
+ model_library/providers/cohere.py,sha256=lCBm1PP1l_UOa1pKFMIZM3C0wCv3QWB6UP0-jvjkFa4,1066
43
+ model_library/providers/deepseek.py,sha256=7T4lxDiV5wmWUK7TAKwr332_T6uyXNCOiirZOCCETL0,1159
44
+ model_library/providers/fireworks.py,sha256=w-5mOF5oNzqx_0ijCoTm1lSn2ZHwhp6fURKhV3LEqIc,2309
45
+ model_library/providers/inception.py,sha256=Nrky53iujIM9spAWoNRtoJg2inFiL0li6E75vT3b6V8,1107
46
+ model_library/providers/kimi.py,sha256=zzvcKpZLsM1xPebpLeMxNKTt_FRiLN1rFWrIly7wfXA,1092
47
+ model_library/providers/mistral.py,sha256=DHl0BYUZOrCvD4La5cyzcpQKHh4RbTbgMORWFbU_TuQ,9536
48
+ model_library/providers/openai.py,sha256=ztJgx17e5PbbLVKsRA5Op0rczMsY4YNcgvRGKHRGlUQ,33572
49
+ model_library/providers/perplexity.py,sha256=eIzzkaZ4ZMlRKFVI9bnwyo91iJkh7aEmJ-0_4OKeAWc,1083
50
+ model_library/providers/together.py,sha256=7Y4QLnX8c_fyXUud-W_C1gidmROQainTgODBwbvFyXQ,2033
51
+ model_library/providers/vals.py,sha256=VLF1rsCR13a_kmtZfboDzJJ64Io_tBFe60vf-0BdYPc,9830
52
+ model_library/providers/xai.py,sha256=oJiMICYLkybHpLv77PmMbi1Xj9IUZmKX3kANksjjFEQ,10828
53
+ model_library/providers/zai.py,sha256=O_GM6KlJ0fM2wYoxO9xrCWfnpYH7IpoKEzjiD4jB8Kc,1050
54
+ model_library/providers/google/__init__.py,sha256=ypuLVL_QJEQ7C3S47FhC9y4wyawYOdGikAViJmACI0U,115
55
+ model_library/providers/google/batch.py,sha256=4TE90Uo1adi54dVtGcGyUAxw11YExJq-Y4KmkQ-cyHA,9978
56
+ model_library/providers/google/google.py,sha256=s9vky9r5SVNhBvMXcIr0_h0MlKLXwx_tQlZzs57xXYo,16507
57
+ model_library-0.1.3.dist-info/licenses/LICENSE,sha256=x6mf4o7U_wHaaqcfxoU-0R6uYJLbqL_TNuoULP3asaA,1070
58
+ model_library-0.1.3.dist-info/METADATA,sha256=qnQqa4o9vNXB74vfgytR3qYSNr16HBOT7_iSDeAx0zw,6992
59
+ model_library-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
60
+ model_library-0.1.3.dist-info/top_level.txt,sha256=HtQYxA_7RP8UT35I6VcUw20L6edI0Zf2t5Ys1uDGVjs,14
61
+ model_library-0.1.3.dist-info/RECORD,,
@@ -1,54 +0,0 @@
1
- model_library/__init__.py,sha256=AKc_15aklOf-LbcS9z1Xer_moRWNpG6Dh3kqvSQ0nOI,714
2
- model_library/base.py,sha256=JRzDZkYhzlEarknC0gX0sRplfxoFaqSb47gYhQy57sA,23834
3
- model_library/exceptions.py,sha256=FnEQXTeC1GpcMEpwukGK7Uwu1_Bnvl87MUs1zOqVm0o,8750
4
- model_library/file_utils.py,sha256=vLxYWI0-kwp67UONcFdZw2qDTV38P7IZLBaXFJDNtO4,3666
5
- model_library/logging.py,sha256=McyaPHUk7RkB38-LrfnudrrU1B62ta8wAbbIBwLRmj0,853
6
- model_library/model_utils.py,sha256=l8oCltGeimMGtnne_3Q1EguVtzCj61UMsLsma-1czwg,753
7
- model_library/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- model_library/register_models.py,sha256=JOSt_VdtsllIshRGKVzKWG9DT7cFHd9JsjZLysi7cUw,13267
9
- model_library/registry_utils.py,sha256=B9lnxkhdobNlkgP0a-QzgiK6W_YHFF7qgkMMerEZcL0,6949
10
- model_library/settings.py,sha256=QyeUqzWBpexFi014L_mZkoXP49no3SAQNJRObATXrL8,873
11
- model_library/utils.py,sha256=Ybcsf_HuKrYzOpf5dvz_gHo0HVjnunOK2BWHb51bo5U,4842
12
- model_library/config/ai21labs_models.yaml,sha256=su8YrHwLTVfIvRrk4AFaLi_Xg1BU_-g8AK1ExKZUXSk,2547
13
- model_library/config/alibaba_models.yaml,sha256=2tIdj_7Qiw_-jZmutdtdJWyAXPl4WEFh1ij3ubymov0,2252
14
- model_library/config/all_models.json,sha256=ol5pkto4gJ8ncvXx6RE25mHZp3j7ILGssLVvaFfuTNg,482811
15
- model_library/config/amazon_models.yaml,sha256=RGj7DH0IzXNs4JmAk6adC2jUEefVxBJNVQIB-n-fXbc,8988
16
- model_library/config/anthropic_models.yaml,sha256=QY1273cboa_Tuaxkjya5ne4YwA6j2yZShDPl3M4KqrM,10416
17
- model_library/config/cohere_models.yaml,sha256=BQSqIsGUXvULeFLGDFJNBxen-6CC5hKNW2s4lSC8Np0,5186
18
- model_library/config/deepseek_models.yaml,sha256=TytG4HnrWd4Q1KiNnEG2ZBX5WDzVv_tYRB51GzUD6qk,1274
19
- model_library/config/dummy_model.yaml,sha256=CTnSdFYC-KTsHt5TvS0echWwUlb_H3eATZL1tVIkXkM,915
20
- model_library/config/fireworks_models.yaml,sha256=VG_Fo8X6qSA3VALn1SKehjj3B1HP0XO1fCYDdaCUdnM,5905
21
- model_library/config/google_models.yaml,sha256=QE9QjBrVlRDvuQ5tZ041VktcMJVGF7aAcYEJoBsimJQ,15661
22
- model_library/config/inception_models.yaml,sha256=g6PC0qjEC2SUPTo2Rad34Dl8dt8ZBv1svaaP2_PIrYg,660
23
- model_library/config/kimi_models.yaml,sha256=BySTLTc0m24oBC94VegosQgxpHglthe5dGRwF-fyduo,840
24
- model_library/config/mistral_models.yaml,sha256=MjKEYFYcGBsFd6iXekE_1oGa3CmEWAVPABJR94gV6SE,3839
25
- model_library/config/openai_models.yaml,sha256=SKGifDmdAz2NP3FES9-fMKIreBBk_DvQPy5x5WgPWq4,23909
26
- model_library/config/perplexity_models.yaml,sha256=avTBrwnG-5Y6kle9t9vBrwcImhSzw-dgoYQuaw7K7Rs,2962
27
- model_library/config/together_models.yaml,sha256=9FtYtEyPFiuInfamuncg5b7PjSh-tc6k1448QulEIg4,24422
28
- model_library/config/xai_models.yaml,sha256=iNVTlpBXHF__KkvAQHgoyDPWrDvyIcOFHZOF8crAMVM,7798
29
- model_library/config/zai_models.yaml,sha256=lyAUPp4qOxkAAKCcbX48IKLaYYPAkp-Jn1wyCjLqmeA,1396
30
- model_library/providers/ai21labs.py,sha256=ubkC0dPTSeZXzPqn6n9H3B60bTBjEIGgzXIXMqIh1Y0,5741
31
- model_library/providers/alibaba.py,sha256=tuXMd8_YxoJ9mcRA__GZB-Gw1xWMLPNRWADvsbrqC5w,4221
32
- model_library/providers/amazon.py,sha256=_oKTEA9y-2gB0axrBMFEZ-yD9WRK_bqI3fcTEtkGubA,13018
33
- model_library/providers/anthropic.py,sha256=Rvg-9ot5DAY8GZ47JMxLMI6M_DxJMp1ZGIJVPYxLAp0,14269
34
- model_library/providers/azure.py,sha256=y4y4-5v8js1SJCqbDZkjZzPW6i9zGVbt5wt1vwdxpLI,1320
35
- model_library/providers/cohere.py,sha256=-MA3xJJUSA5N3f35zPrMzTyFSPV4fWXbnl68YaEgCXk,2484
36
- model_library/providers/deepseek.py,sha256=Mu803nDHWWscHfbu480SJPcn3wj34glve2YSCRkiBqM,3069
37
- model_library/providers/fireworks.py,sha256=10VHV8CMv4gGn6dnQjsFWFOeiwIj0mjVh0SIepnNVmI,3652
38
- model_library/providers/inception.py,sha256=FcLETPzRRTbYKCcWxe66amx_DRGYhX7nU6HeJ6GocLQ,2567
39
- model_library/providers/kimi.py,sha256=3yWy6zSUsxAZWtqJltQp2ohanBQoj7eyZkZHGTpT2k8,2532
40
- model_library/providers/mistral.py,sha256=MeHi9H2CsFU6VlxxY2v942-QOpdHuLI5lpqC_JP4AcI,9444
41
- model_library/providers/openai.py,sha256=zuJQk52NN9XnAe9a6P63RfvMYvKMGCb2ru3tuxvyAPQ,33358
42
- model_library/providers/perplexity.py,sha256=RX5K32OIpqltYgeJjJkDsMjenxQLO7ujV00Oq6_dXoY,2479
43
- model_library/providers/together.py,sha256=KaBTefk2y-4cyjuNdj61D-WFXs43rybVzeXWBETjBNg,8087
44
- model_library/providers/vals.py,sha256=NGEfEaADdqWJr-tC8Xdf7XWNScwF9sJ4KvnGdM3kiFo,9743
45
- model_library/providers/xai.py,sha256=U3d5HJ1tS_FUU0B9F9P5eVz-MSXLbIHqnIdkYK09VsI,10741
46
- model_library/providers/zai.py,sha256=4Ui-2bPQ7m0NwQLJAaMezbLUNZOqBfWzq1JCR8f65Nw,2523
47
- model_library/providers/google/__init__.py,sha256=ypuLVL_QJEQ7C3S47FhC9y4wyawYOdGikAViJmACI0U,115
48
- model_library/providers/google/batch.py,sha256=4TE90Uo1adi54dVtGcGyUAxw11YExJq-Y4KmkQ-cyHA,9978
49
- model_library/providers/google/google.py,sha256=nsfiA6x0Mo6e6Q307ogA99fAOUqiEqWoMjmbLvFUikQ,16347
50
- model_library-0.1.1.dist-info/licenses/LICENSE,sha256=x6mf4o7U_wHaaqcfxoU-0R6uYJLbqL_TNuoULP3asaA,1070
51
- model_library-0.1.1.dist-info/METADATA,sha256=IjFE4RqayFyEoejuGc680tYVZurKlFSuHq7X949p_Qc,7034
52
- model_library-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
53
- model_library-0.1.1.dist-info/top_level.txt,sha256=HtQYxA_7RP8UT35I6VcUw20L6edI0Zf2t5Ys1uDGVjs,14
54
- model_library-0.1.1.dist-info/RECORD,,