medgemma 0.1.0__tar.gz
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.
- medgemma-0.1.0/.gitignore +46 -0
- medgemma-0.1.0/PKG-INFO +49 -0
- medgemma-0.1.0/README.md +28 -0
- medgemma-0.1.0/generate_resources.py +81 -0
- medgemma-0.1.0/inject_resources.py +13 -0
- medgemma-0.1.0/medgemma.rb +357 -0
- medgemma-0.1.0/pyproject.toml +37 -0
- medgemma-0.1.0/requirements.txt +70 -0
- medgemma-0.1.0/resources.log +67 -0
- medgemma-0.1.0/resources.rb +335 -0
- medgemma-0.1.0/src/medgemma/__init__.py +9 -0
- medgemma-0.1.0/src/medgemma/__main__.py +5 -0
- medgemma-0.1.0/src/medgemma/_compat.py +24 -0
- medgemma-0.1.0/src/medgemma/_version.py +1 -0
- medgemma-0.1.0/src/medgemma/cli.py +91 -0
- medgemma-0.1.0/src/medgemma/client.py +169 -0
- medgemma-0.1.0/src/medgemma/config.py +24 -0
- medgemma-0.1.0/src/medgemma/convert.py +98 -0
- medgemma-0.1.0/src/medgemma/model.py +74 -0
- medgemma-0.1.0/tests/test_cli.py +19 -0
- medgemma-0.1.0/tests/test_client.py +53 -0
- medgemma-0.1.0/tests/test_config.py +17 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
share/python-wheels/
|
|
20
|
+
*.egg-info/
|
|
21
|
+
.installed.cfg
|
|
22
|
+
*.egg
|
|
23
|
+
MANIFEST
|
|
24
|
+
|
|
25
|
+
# Environments
|
|
26
|
+
.env
|
|
27
|
+
.venv
|
|
28
|
+
env/
|
|
29
|
+
venv/
|
|
30
|
+
ENV/
|
|
31
|
+
env.bak/
|
|
32
|
+
venv.bak/
|
|
33
|
+
|
|
34
|
+
# IDEs
|
|
35
|
+
.idea/
|
|
36
|
+
.vscode/
|
|
37
|
+
*.swp
|
|
38
|
+
*.swo
|
|
39
|
+
|
|
40
|
+
# Mac
|
|
41
|
+
.DS_Store
|
|
42
|
+
|
|
43
|
+
# Project specific
|
|
44
|
+
medgemma-original/
|
|
45
|
+
output/
|
|
46
|
+
.pytest_cache/
|
medgemma-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: medgemma
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Medical AI on Apple Silicon – MedGemma 1.5 4B via MLX
|
|
5
|
+
Author: chiboko
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: ai,apple-silicon,medgemma,medical,mlx
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Intended Audience :: Healthcare Industry
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Operating System :: MacOS
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Requires-Dist: click>=8.0
|
|
16
|
+
Requires-Dist: mlx-vlm>=0.3.10
|
|
17
|
+
Provides-Extra: dev
|
|
18
|
+
Requires-Dist: pytest-mock; extra == 'dev'
|
|
19
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# medgemma
|
|
23
|
+
|
|
24
|
+
Medical AI on Apple Silicon – MedGemma 1.5 4B via MLX.
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install medgemma
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
from medgemma import MedGemma
|
|
36
|
+
|
|
37
|
+
mg = MedGemma()
|
|
38
|
+
response = mg.ask("What are symptoms of diabetes?")
|
|
39
|
+
print(response.text)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### CLI
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
medgemma ask "What are symptoms of diabetes?"
|
|
46
|
+
medgemma ask "Describe this X-ray" --image xray.png
|
|
47
|
+
medgemma setup
|
|
48
|
+
medgemma info
|
|
49
|
+
```
|
medgemma-0.1.0/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# medgemma
|
|
2
|
+
|
|
3
|
+
Medical AI on Apple Silicon – MedGemma 1.5 4B via MLX.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install medgemma
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from medgemma import MedGemma
|
|
15
|
+
|
|
16
|
+
mg = MedGemma()
|
|
17
|
+
response = mg.ask("What are symptoms of diabetes?")
|
|
18
|
+
print(response.text)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### CLI
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
medgemma ask "What are symptoms of diabetes?"
|
|
25
|
+
medgemma ask "Describe this X-ray" --image xray.png
|
|
26
|
+
medgemma setup
|
|
27
|
+
medgemma info
|
|
28
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
|
|
2
|
+
import requests
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
def get_pypi_data(package_name, version):
|
|
6
|
+
print(f"Fetching {package_name} {version}...", file=sys.stderr, flush=True)
|
|
7
|
+
# PyPI JSON API: https://pypi.org/pypi/<package_name>/<version>/json
|
|
8
|
+
url = f"https://pypi.org/pypi/{package_name}/{version}/json"
|
|
9
|
+
try:
|
|
10
|
+
resp = requests.get(url, timeout=10)
|
|
11
|
+
except Exception as e:
|
|
12
|
+
print(f"Check failed for {package_name}: {e}", file=sys.stderr)
|
|
13
|
+
return None
|
|
14
|
+
|
|
15
|
+
if resp.status_code != 200:
|
|
16
|
+
print(f"Error fetching {package_name} {version}: {resp.status_code}", file=sys.stderr)
|
|
17
|
+
return None
|
|
18
|
+
return resp.json()
|
|
19
|
+
|
|
20
|
+
def generate_resource_block(package_name, version):
|
|
21
|
+
data = get_pypi_data(package_name, version)
|
|
22
|
+
if not data:
|
|
23
|
+
return ""
|
|
24
|
+
|
|
25
|
+
# helper: prefer source tarball, else wheel suitable for mac/multi-platform
|
|
26
|
+
keys = ["sdist", "bdist_wheel"]
|
|
27
|
+
|
|
28
|
+
urls = data['urls']
|
|
29
|
+
if not urls:
|
|
30
|
+
print(f"No URLs found for {package_name}", file=sys.stderr)
|
|
31
|
+
return ""
|
|
32
|
+
|
|
33
|
+
# try to find sdist first
|
|
34
|
+
selected = next((u for u in urls if u['packagetype'] == 'sdist'), None)
|
|
35
|
+
|
|
36
|
+
# if no sdist, find a universal wheel or macos wheel
|
|
37
|
+
if not selected:
|
|
38
|
+
for u in urls:
|
|
39
|
+
if u['packagetype'] == 'bdist_wheel':
|
|
40
|
+
fname = u['filename']
|
|
41
|
+
if "macosx" in fname or "any" in fname:
|
|
42
|
+
selected = u
|
|
43
|
+
break
|
|
44
|
+
|
|
45
|
+
selected = selected or urls[0]
|
|
46
|
+
|
|
47
|
+
url = selected['url']
|
|
48
|
+
sha256 = selected['digests']['sha256']
|
|
49
|
+
|
|
50
|
+
return f""" resource "{package_name}" do
|
|
51
|
+
url "{url}"
|
|
52
|
+
sha256 "{sha256}"
|
|
53
|
+
end
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
def main():
|
|
57
|
+
try:
|
|
58
|
+
with open("requirements.txt") as f:
|
|
59
|
+
lines = f.readlines()
|
|
60
|
+
except FileNotFoundError:
|
|
61
|
+
print("requirements.txt not found", file=sys.stderr)
|
|
62
|
+
return
|
|
63
|
+
|
|
64
|
+
ignore_list = ["medgemma", "homebrew-pypi-poet", "setuptools"]
|
|
65
|
+
|
|
66
|
+
for line in lines:
|
|
67
|
+
line = line.strip()
|
|
68
|
+
if not line or line.startswith("#"): continue
|
|
69
|
+
if " @ " in line: continue # skip local/git deps
|
|
70
|
+
|
|
71
|
+
parts = line.split("==")
|
|
72
|
+
if len(parts) != 2: continue
|
|
73
|
+
|
|
74
|
+
pkg, ver = parts[0], parts[1]
|
|
75
|
+
|
|
76
|
+
if pkg in ignore_list: continue
|
|
77
|
+
|
|
78
|
+
print(generate_resource_block(pkg, ver))
|
|
79
|
+
|
|
80
|
+
if __name__ == "__main__":
|
|
81
|
+
main()
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
with open("medgemma.rb") as f:
|
|
3
|
+
original = f.read()
|
|
4
|
+
|
|
5
|
+
with open("resources.rb") as f:
|
|
6
|
+
resources = f.read()
|
|
7
|
+
|
|
8
|
+
# insert resources before "def install"
|
|
9
|
+
parts = original.split(" def install")
|
|
10
|
+
new_content = parts[0] + "\n" + resources + "\n def install" + parts[1]
|
|
11
|
+
|
|
12
|
+
with open("medgemma.rb", "w") as f:
|
|
13
|
+
f.write(new_content)
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
class Medgemma < Formula
|
|
2
|
+
include Language::Python::Virtualenv
|
|
3
|
+
|
|
4
|
+
desc "Medical AI on Apple Silicon – MedGemma 1.5 4B via MLX"
|
|
5
|
+
homepage "https://github.com/chibokocl/medgemma"
|
|
6
|
+
url "https://github.com/chibokocl/medgemma.git", branch: "main"
|
|
7
|
+
version "0.1.0"
|
|
8
|
+
license "MIT"
|
|
9
|
+
|
|
10
|
+
depends_on "python@3.10"
|
|
11
|
+
depends_on "cmake" => :build
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
resource "aiohappyeyeballs" do
|
|
15
|
+
url "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz"
|
|
16
|
+
sha256 "c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
resource "aiohttp" do
|
|
20
|
+
url "https://files.pythonhosted.org/packages/50/42/32cf8e7704ceb4481406eb87161349abb46a57fee3f008ba9cb610968646/aiohttp-3.13.3.tar.gz"
|
|
21
|
+
sha256 "a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
resource "aiosignal" do
|
|
25
|
+
url "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz"
|
|
26
|
+
sha256 "f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
resource "annotated-doc" do
|
|
30
|
+
url "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz"
|
|
31
|
+
sha256 "fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
resource "annotated-types" do
|
|
35
|
+
url "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz"
|
|
36
|
+
sha256 "aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
resource "anyio" do
|
|
40
|
+
url "https://files.pythonhosted.org/packages/96/f0/5eb65b2bb0d09ac6776f2eb54adee6abe8228ea05b20a5ad0e4945de8aac/anyio-4.12.1.tar.gz"
|
|
41
|
+
sha256 "41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
resource "attrs" do
|
|
45
|
+
url "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz"
|
|
46
|
+
sha256 "16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
resource "certifi" do
|
|
50
|
+
url "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz"
|
|
51
|
+
sha256 "ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
resource "cffi" do
|
|
55
|
+
url "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz"
|
|
56
|
+
sha256 "44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
resource "charset-normalizer" do
|
|
60
|
+
url "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz"
|
|
61
|
+
sha256 "94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
resource "click" do
|
|
65
|
+
url "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz"
|
|
66
|
+
sha256 "12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
resource "datasets" do
|
|
70
|
+
url "https://files.pythonhosted.org/packages/55/bf/bb927bde63d649296c83e883171ae77074717c1b80fe2868b328bd0dbcbb/datasets-4.5.0.tar.gz"
|
|
71
|
+
sha256 "00c698ce1c2452e646cc5fad47fef39d3fe78dd650a8a6eb205bb45eb63cd500"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
resource "dill" do
|
|
75
|
+
url "https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz"
|
|
76
|
+
sha256 "0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
resource "fastapi" do
|
|
80
|
+
url "https://files.pythonhosted.org/packages/52/08/8c8508db6c7b9aae8f7175046af41baad690771c9bcde676419965e338c7/fastapi-0.128.0.tar.gz"
|
|
81
|
+
sha256 "1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a"
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
resource "filelock" do
|
|
85
|
+
url "https://files.pythonhosted.org/packages/1d/65/ce7f1b70157833bf3cb851b556a37d4547ceafc158aa9b34b36782f23696/filelock-3.20.3.tar.gz"
|
|
86
|
+
sha256 "18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
resource "frozenlist" do
|
|
90
|
+
url "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz"
|
|
91
|
+
sha256 "3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad"
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
resource "fsspec" do
|
|
95
|
+
url "https://files.pythonhosted.org/packages/24/7f/2747c0d332b9acfa75dc84447a066fdf812b5a6b8d30472b74d309bfe8cb/fsspec-2025.10.0.tar.gz"
|
|
96
|
+
sha256 "b6789427626f068f9a83ca4e8a3cc050850b6c0f71f99ddb4f542b8266a26a59"
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
resource "h11" do
|
|
100
|
+
url "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz"
|
|
101
|
+
sha256 "4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
resource "hf-xet" do
|
|
105
|
+
url "https://files.pythonhosted.org/packages/5e/6e/0f11bacf08a67f7fb5ee09740f2ca54163863b07b70d579356e9222ce5d8/hf_xet-1.2.0.tar.gz"
|
|
106
|
+
sha256 "a8c27070ca547293b6890c4bf389f713f80e8c478631432962bb7f4bc0bd7d7f"
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
resource "httpcore" do
|
|
110
|
+
url "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz"
|
|
111
|
+
sha256 "6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
resource "httpx" do
|
|
115
|
+
url "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz"
|
|
116
|
+
sha256 "75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
resource "huggingface_hub" do
|
|
120
|
+
url "https://files.pythonhosted.org/packages/67/e9/2658cb9bc4c72a67b7f87650e827266139befaf499095883d30dabc4d49f/huggingface_hub-1.3.5.tar.gz"
|
|
121
|
+
sha256 "8045aca8ddab35d937138f3c386c6d43a275f53437c5c64cdc9aa8408653b4ed"
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
resource "idna" do
|
|
125
|
+
url "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz"
|
|
126
|
+
sha256 "795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
resource "iniconfig" do
|
|
130
|
+
url "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz"
|
|
131
|
+
sha256 "c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
resource "Jinja2" do
|
|
135
|
+
url "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz"
|
|
136
|
+
sha256 "0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
resource "MarkupSafe" do
|
|
140
|
+
url "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz"
|
|
141
|
+
sha256 "722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
resource "mlx" do
|
|
145
|
+
url "https://files.pythonhosted.org/packages/f1/c0/3e5442dc0101dec6c4a6a6d10da7a2c120fc5f1f0bda7ea67cb6bc1cb318/mlx-0.30.4-cp310-cp310-macosx_14_0_arm64.whl"
|
|
146
|
+
sha256 "dbee1b130b27119c6aa64b1120273a93d638399a7f1036637e4f974af35141bc"
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
resource "mlx-lm" do
|
|
150
|
+
url "https://files.pythonhosted.org/packages/0b/90/4469d9f75f196e6255f59a89441abe0079925d30a001462e1c1c4bc4e6a1/mlx_lm-0.30.5.tar.gz"
|
|
151
|
+
sha256 "9e6cb258c65b766c6af25cb90958aef40acab67139f05839eef19864cb3154f6"
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
resource "mlx-metal" do
|
|
155
|
+
url "https://files.pythonhosted.org/packages/95/b1/a50b84aaa76a60605606df49196456f31871148485ede7cbe3267a25a51e/mlx_metal-0.30.4-py3-none-macosx_14_0_arm64.whl"
|
|
156
|
+
sha256 "10c417f86778ac5529ecd2180f90de35f2d3a0fcad4d5176d211d651504c4922"
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
resource "mlx-vlm" do
|
|
160
|
+
url "https://files.pythonhosted.org/packages/dd/e1/2db6ed3ef96a370b846d6fd7e2f88a522c794873ddc0467bc02ab1dd2513/mlx_vlm-0.3.10.tar.gz"
|
|
161
|
+
sha256 "8bfa2ee440fe6d00aee54a113449821ebe89ff5c96f61d838dee7658501a81c5"
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
resource "multidict" do
|
|
165
|
+
url "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz"
|
|
166
|
+
sha256 "ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d"
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
resource "multiprocess" do
|
|
170
|
+
url "https://files.pythonhosted.org/packages/72/fd/2ae3826f5be24c6ed87266bc4e59c46ea5b059a103f3d7e7eb76a52aeecb/multiprocess-0.70.18.tar.gz"
|
|
171
|
+
sha256 "f9597128e6b3e67b23956da07cf3d2e5cba79e2f4e0fba8d7903636663ec6d0d"
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
resource "numpy" do
|
|
175
|
+
url "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz"
|
|
176
|
+
sha256 "659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae"
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
resource "opencv-python" do
|
|
180
|
+
url "https://files.pythonhosted.org/packages/77/d7/133d5756aef78090f4d8dd4895793aed24942dec6064a15375cfac9175fc/opencv_python-4.13.0.90-cp37-abi3-macosx_13_0_arm64.whl"
|
|
181
|
+
sha256 "58803f8b05b51d8a785e2306d83b44173b32536f980342f3bc76d8c122b5938d"
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
resource "packaging" do
|
|
185
|
+
url "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz"
|
|
186
|
+
sha256 "00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4"
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
resource "pandas" do
|
|
190
|
+
url "https://files.pythonhosted.org/packages/de/da/b1dc0481ab8d55d0f46e343cfe67d4551a0e14fcee52bd38ca1bd73258d8/pandas-3.0.0.tar.gz"
|
|
191
|
+
sha256 "0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f"
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
resource "pillow" do
|
|
195
|
+
url "https://files.pythonhosted.org/packages/d0/02/d52c733a2452ef1ffcc123b68e6606d07276b0e358db70eabad7e40042b7/pillow-12.1.0.tar.gz"
|
|
196
|
+
sha256 "5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9"
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
resource "pluggy" do
|
|
200
|
+
url "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz"
|
|
201
|
+
sha256 "7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
resource "propcache" do
|
|
205
|
+
url "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz"
|
|
206
|
+
sha256 "f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d"
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
resource "protobuf" do
|
|
210
|
+
url "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz"
|
|
211
|
+
sha256 "6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c"
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
resource "pyarrow" do
|
|
215
|
+
url "https://files.pythonhosted.org/packages/01/33/ffd9c3eb087fa41dd79c3cf20c4c0ae3cdb877c4f8e1107a446006344924/pyarrow-23.0.0.tar.gz"
|
|
216
|
+
sha256 "180e3150e7edfcd182d3d9afba72f7cf19839a497cc76555a8dce998a8f67615"
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
resource "pycparser" do
|
|
220
|
+
url "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz"
|
|
221
|
+
sha256 "600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29"
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
resource "pydantic" do
|
|
225
|
+
url "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz"
|
|
226
|
+
sha256 "4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49"
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
resource "pydantic_core" do
|
|
230
|
+
url "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz"
|
|
231
|
+
sha256 "08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e"
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
resource "Pygments" do
|
|
235
|
+
url "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz"
|
|
236
|
+
sha256 "636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
resource "pytest" do
|
|
240
|
+
url "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz"
|
|
241
|
+
sha256 "75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11"
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
resource "pytest-mock" do
|
|
245
|
+
url "https://files.pythonhosted.org/packages/68/14/eb014d26be205d38ad5ad20d9a80f7d201472e08167f0bb4361e251084a9/pytest_mock-3.15.1.tar.gz"
|
|
246
|
+
sha256 "1849a238f6f396da19762269de72cb1814ab44416fa73a8686deac10b0d87a0f"
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
resource "python-dateutil" do
|
|
250
|
+
url "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz"
|
|
251
|
+
sha256 "37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
resource "PyYAML" do
|
|
255
|
+
url "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz"
|
|
256
|
+
sha256 "d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
resource "regex" do
|
|
260
|
+
url "https://files.pythonhosted.org/packages/0b/86/07d5056945f9ec4590b518171c4254a5925832eb727b56d3c38a7476f316/regex-2026.1.15.tar.gz"
|
|
261
|
+
sha256 "164759aa25575cbc0651bef59a0b18353e54300d79ace8084c818ad8ac72b7d5"
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
resource "requests" do
|
|
265
|
+
url "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz"
|
|
266
|
+
sha256 "dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
resource "safetensors" do
|
|
270
|
+
url "https://files.pythonhosted.org/packages/29/9c/6e74567782559a63bd040a236edca26fd71bc7ba88de2ef35d75df3bca5e/safetensors-0.7.0.tar.gz"
|
|
271
|
+
sha256 "07663963b67e8bd9f0b8ad15bb9163606cd27cc5a1b96235a50d8369803b96b0"
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
resource "sentencepiece" do
|
|
275
|
+
url "https://files.pythonhosted.org/packages/15/15/2e7a025fc62d764b151ae6d0f2a92f8081755ebe8d4a64099accc6f77ba6/sentencepiece-0.2.1.tar.gz"
|
|
276
|
+
sha256 "8138cec27c2f2282f4a34d9a016e3374cd40e5c6e9cb335063db66a0a3b71fad"
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
resource "shellingham" do
|
|
280
|
+
url "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz"
|
|
281
|
+
sha256 "8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
resource "six" do
|
|
285
|
+
url "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz"
|
|
286
|
+
sha256 "ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
resource "soundfile" do
|
|
290
|
+
url "https://files.pythonhosted.org/packages/e1/41/9b873a8c055582859b239be17902a85339bec6a30ad162f98c9b0288a2cc/soundfile-0.13.1.tar.gz"
|
|
291
|
+
sha256 "b2c68dab1e30297317080a5b43df57e302584c49e2942defdde0acccc53f0e5b"
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
resource "starlette" do
|
|
295
|
+
url "https://files.pythonhosted.org/packages/ba/b8/73a0e6a6e079a9d9cfa64113d771e421640b6f679a52eeb9b32f72d871a1/starlette-0.50.0.tar.gz"
|
|
296
|
+
sha256 "a2a17b22203254bcbc2e1f926d2d55f3f9497f769416b3190768befe598fa3ca"
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
resource "tokenizers" do
|
|
300
|
+
url "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz"
|
|
301
|
+
sha256 "473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917"
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
resource "tqdm" do
|
|
305
|
+
url "https://files.pythonhosted.org/packages/27/89/4b0001b2dab8df0a5ee2787dcbe771de75ded01f18f1f8d53dedeea2882b/tqdm-4.67.2.tar.gz"
|
|
306
|
+
sha256 "649aac53964b2cb8dec76a14b405a4c0d13612cb8933aae547dd144eacc99653"
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
resource "transformers" do
|
|
310
|
+
url "https://files.pythonhosted.org/packages/3f/a3/7c116a8d85f69ea7749cf4c2df79e64c35d028e5fc7ea0168f299d03b8c7/transformers-5.0.0rc3.tar.gz"
|
|
311
|
+
sha256 "a0315b92b7e087617ade42ec9e6e92ee7620541cc5d6a3331886c52cbe306f5c"
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
resource "typer-slim" do
|
|
315
|
+
url "https://files.pythonhosted.org/packages/17/d4/064570dec6358aa9049d4708e4a10407d74c99258f8b2136bb8702303f1a/typer_slim-0.21.1.tar.gz"
|
|
316
|
+
sha256 "73495dd08c2d0940d611c5a8c04e91c2a0a98600cbd4ee19192255a233b6dbfd"
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
resource "typing-inspection" do
|
|
320
|
+
url "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz"
|
|
321
|
+
sha256 "ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464"
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
resource "typing_extensions" do
|
|
325
|
+
url "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz"
|
|
326
|
+
sha256 "0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
resource "urllib3" do
|
|
330
|
+
url "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz"
|
|
331
|
+
sha256 "1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
resource "uvicorn" do
|
|
335
|
+
url "https://files.pythonhosted.org/packages/c3/d1/8f3c683c9561a4e6689dd3b1d345c815f10f86acd044ee1fb9a4dcd0b8c5/uvicorn-0.40.0.tar.gz"
|
|
336
|
+
sha256 "839676675e87e73694518b5574fd0f24c9d97b46bea16df7b8c05ea1a51071ea"
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
resource "xxhash" do
|
|
340
|
+
url "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz"
|
|
341
|
+
sha256 "f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6"
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
resource "yarl" do
|
|
345
|
+
url "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz"
|
|
346
|
+
sha256 "bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71"
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
def install
|
|
351
|
+
virtualenv_install_with_resources
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
test do
|
|
355
|
+
system "#{bin}/medgemma", "--help"
|
|
356
|
+
end
|
|
357
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "medgemma"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Medical AI on Apple Silicon – MedGemma 1.5 4B via MLX"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
|
+
authors = [{ name = "chiboko" }]
|
|
13
|
+
keywords = ["medical", "ai", "mlx", "apple-silicon", "medgemma"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 3 - Alpha",
|
|
16
|
+
"Intended Audience :: Healthcare Industry",
|
|
17
|
+
"Intended Audience :: Science/Research",
|
|
18
|
+
"Operating System :: MacOS",
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
21
|
+
]
|
|
22
|
+
dependencies = [
|
|
23
|
+
"mlx-vlm>=0.3.10",
|
|
24
|
+
"click>=8.0",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
[project.optional-dependencies]
|
|
28
|
+
dev = ["pytest>=7.0", "pytest-mock"]
|
|
29
|
+
|
|
30
|
+
[project.scripts]
|
|
31
|
+
medgemma = "medgemma.cli:cli"
|
|
32
|
+
|
|
33
|
+
[tool.hatch.version]
|
|
34
|
+
path = "src/medgemma/_version.py"
|
|
35
|
+
|
|
36
|
+
[tool.hatch.build.targets.wheel]
|
|
37
|
+
packages = ["src/medgemma"]
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
aiohappyeyeballs==2.6.1
|
|
2
|
+
aiohttp==3.13.3
|
|
3
|
+
aiosignal==1.4.0
|
|
4
|
+
annotated-doc==0.0.4
|
|
5
|
+
annotated-types==0.7.0
|
|
6
|
+
anyio==4.12.1
|
|
7
|
+
attrs==25.4.0
|
|
8
|
+
certifi==2026.1.4
|
|
9
|
+
cffi==2.0.0
|
|
10
|
+
charset-normalizer==3.4.4
|
|
11
|
+
click==8.3.1
|
|
12
|
+
datasets==4.5.0
|
|
13
|
+
dill==0.4.0
|
|
14
|
+
fastapi==0.128.0
|
|
15
|
+
filelock==3.20.3
|
|
16
|
+
frozenlist==1.8.0
|
|
17
|
+
fsspec==2025.10.0
|
|
18
|
+
h11==0.16.0
|
|
19
|
+
hf-xet==1.2.0
|
|
20
|
+
homebrew-pypi-poet==0.10.0
|
|
21
|
+
httpcore==1.0.9
|
|
22
|
+
httpx==0.28.1
|
|
23
|
+
huggingface_hub==1.3.5
|
|
24
|
+
idna==3.11
|
|
25
|
+
iniconfig==2.3.0
|
|
26
|
+
Jinja2==3.1.6
|
|
27
|
+
MarkupSafe==3.0.3
|
|
28
|
+
-e git+ssh://git@github.com/chibokocl/medgemma.git@16e562c0d3a5270a07bb8733a256acc70bbc7775#egg=medgemma
|
|
29
|
+
mlx==0.30.4
|
|
30
|
+
mlx-lm==0.30.5
|
|
31
|
+
mlx-metal==0.30.4
|
|
32
|
+
mlx-vlm==0.3.10
|
|
33
|
+
multidict==6.7.1
|
|
34
|
+
multiprocess==0.70.18
|
|
35
|
+
numpy==2.4.2
|
|
36
|
+
opencv-python==4.13.0.90
|
|
37
|
+
packaging==26.0
|
|
38
|
+
pandas==3.0.0
|
|
39
|
+
pillow==12.1.0
|
|
40
|
+
pluggy==1.6.0
|
|
41
|
+
propcache==0.4.1
|
|
42
|
+
protobuf==6.33.5
|
|
43
|
+
pyarrow==23.0.0
|
|
44
|
+
pycparser==3.0
|
|
45
|
+
pydantic==2.12.5
|
|
46
|
+
pydantic_core==2.41.5
|
|
47
|
+
Pygments==2.19.2
|
|
48
|
+
pytest==9.0.2
|
|
49
|
+
pytest-mock==3.15.1
|
|
50
|
+
python-dateutil==2.9.0.post0
|
|
51
|
+
PyYAML==6.0.3
|
|
52
|
+
regex==2026.1.15
|
|
53
|
+
requests==2.32.5
|
|
54
|
+
safetensors==0.7.0
|
|
55
|
+
sentencepiece==0.2.1
|
|
56
|
+
setuptools==80.10.2
|
|
57
|
+
shellingham==1.5.4
|
|
58
|
+
six==1.17.0
|
|
59
|
+
soundfile==0.13.1
|
|
60
|
+
starlette==0.50.0
|
|
61
|
+
tokenizers==0.22.2
|
|
62
|
+
tqdm==4.67.2
|
|
63
|
+
transformers==5.0.0rc3
|
|
64
|
+
typer-slim==0.21.1
|
|
65
|
+
typing-inspection==0.4.2
|
|
66
|
+
typing_extensions==4.15.0
|
|
67
|
+
urllib3==2.6.3
|
|
68
|
+
uvicorn==0.40.0
|
|
69
|
+
xxhash==3.6.0
|
|
70
|
+
yarl==1.22.0
|