Upload folder using huggingface_hub
Browse files- CLAUDE.md +15 -0
- README.md +1 -1
- pyproject.toml +1 -1
- requirements.txt +8 -8
CLAUDE.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# AnkiGen Development Notes
|
| 2 |
+
|
| 3 |
+
## Dependency Management
|
| 4 |
+
|
| 5 |
+
This project uses `pyproject.toml` for direct dependencies (floor pins like `>=`) and `requirements.txt` for the full frozen lockfile (exact pins with `==`). Both must stay in sync.
|
| 6 |
+
|
| 7 |
+
### Gradio + HuggingFace Spaces
|
| 8 |
+
|
| 9 |
+
The app is deployed as a Gradio Space on HuggingFace. The README.md YAML frontmatter contains `sdk_version:` which **must** match the pinned gradio version in `requirements.txt`. If these drift, the Space will either fail to build or run a different gradio version than what was tested locally.
|
| 10 |
+
|
| 11 |
+
When bumping gradio:
|
| 12 |
+
1. Update `requirements.txt` (`gradio==X.Y.Z`)
|
| 13 |
+
2. Update `pyproject.toml` (`gradio>=X.Y.Z`)
|
| 14 |
+
3. Update `README.md` frontmatter (`sdk_version: X.Y.Z`)
|
| 15 |
+
4. Also bump `gradio-client` in `requirements.txt` to the matching release
|
README.md
CHANGED
|
@@ -5,7 +5,7 @@ app_file: app.py
|
|
| 5 |
requirements: requirements.txt
|
| 6 |
python_version: 3.12
|
| 7 |
sdk: gradio
|
| 8 |
-
sdk_version: 6.
|
| 9 |
---
|
| 10 |
|
| 11 |
# AnkiGen - Anki Card Generator
|
|
|
|
| 5 |
requirements: requirements.txt
|
| 6 |
python_version: 3.12
|
| 7 |
sdk: gradio
|
| 8 |
+
sdk_version: 6.5.1
|
| 9 |
---
|
| 10 |
|
| 11 |
# AnkiGen - Anki Card Generator
|
pyproject.toml
CHANGED
|
@@ -14,7 +14,7 @@ requires-python = ">=3.12"
|
|
| 14 |
dependencies = [
|
| 15 |
"openai>=2.8.0",
|
| 16 |
"openai-agents>=0.6.1",
|
| 17 |
-
"gradio>=5.
|
| 18 |
"tenacity>=9.1.2",
|
| 19 |
"genanki>=0.13.1",
|
| 20 |
"pydantic>=2.12.3",
|
|
|
|
| 14 |
dependencies = [
|
| 15 |
"openai>=2.8.0",
|
| 16 |
"openai-agents>=0.6.1",
|
| 17 |
+
"gradio>=6.5.1",
|
| 18 |
"tenacity>=9.1.2",
|
| 19 |
"genanki>=0.13.1",
|
| 20 |
"pydantic>=2.12.3",
|
requirements.txt
CHANGED
|
@@ -17,7 +17,7 @@ chevron==0.14.0
|
|
| 17 |
click==8.2.1
|
| 18 |
cloudpickle==3.1.2
|
| 19 |
colorama==0.4.6
|
| 20 |
-
cryptography==46.0.
|
| 21 |
cyclopts==4.4.1
|
| 22 |
diskcache==5.6.3
|
| 23 |
distro==1.9.0
|
|
@@ -30,12 +30,12 @@ fakeredis==2.33.0
|
|
| 30 |
fastapi==0.120.4
|
| 31 |
fastmcp==2.14.0
|
| 32 |
ffmpy==0.6.0
|
| 33 |
-
filelock==3.20.
|
| 34 |
frozendict==2.4.6
|
| 35 |
fsspec==2025.5.1
|
| 36 |
genanki==0.13.1
|
| 37 |
-
gradio==6.
|
| 38 |
-
gradio-client==2.0.
|
| 39 |
griffe==1.7.3
|
| 40 |
groovy==0.1.2
|
| 41 |
h11==0.16.0
|
|
@@ -72,12 +72,12 @@ opentelemetry-exporter-prometheus==0.60b1
|
|
| 72 |
opentelemetry-instrumentation==0.60b1
|
| 73 |
opentelemetry-sdk==1.39.1
|
| 74 |
opentelemetry-semantic-conventions==0.60b1
|
| 75 |
-
orjson==3.
|
| 76 |
packaging==25.0
|
| 77 |
pandas==2.3.2
|
| 78 |
pathable==0.4.4
|
| 79 |
pathvalidate==3.3.1
|
| 80 |
-
pillow==12.1.
|
| 81 |
platformdirs==4.3.8
|
| 82 |
prometheus-client==0.23.1
|
| 83 |
py-key-value-aio==0.3.0
|
|
@@ -94,7 +94,7 @@ pyperclip==1.10.0
|
|
| 94 |
python-dateutil==2.9.0.post0
|
| 95 |
python-dotenv==1.1.1
|
| 96 |
python-json-logger==4.0.0
|
| 97 |
-
python-multipart==0.0.
|
| 98 |
pytz==2025.2
|
| 99 |
pyyaml==6.0.2
|
| 100 |
redis==7.1.0
|
|
@@ -123,7 +123,7 @@ types-requests==2.32.4.20250611
|
|
| 123 |
typing-extensions==4.15.0
|
| 124 |
typing-inspection==0.4.2
|
| 125 |
tzdata==2025.2
|
| 126 |
-
urllib3==2.6.
|
| 127 |
uvicorn==0.40.0
|
| 128 |
websockets==15.0.1
|
| 129 |
wrapt==1.17.3
|
|
|
|
| 17 |
click==8.2.1
|
| 18 |
cloudpickle==3.1.2
|
| 19 |
colorama==0.4.6
|
| 20 |
+
cryptography==46.0.5
|
| 21 |
cyclopts==4.4.1
|
| 22 |
diskcache==5.6.3
|
| 23 |
distro==1.9.0
|
|
|
|
| 30 |
fastapi==0.120.4
|
| 31 |
fastmcp==2.14.0
|
| 32 |
ffmpy==0.6.0
|
| 33 |
+
filelock==3.20.3
|
| 34 |
frozendict==2.4.6
|
| 35 |
fsspec==2025.5.1
|
| 36 |
genanki==0.13.1
|
| 37 |
+
gradio==6.5.1
|
| 38 |
+
gradio-client==2.0.3
|
| 39 |
griffe==1.7.3
|
| 40 |
groovy==0.1.2
|
| 41 |
h11==0.16.0
|
|
|
|
| 72 |
opentelemetry-instrumentation==0.60b1
|
| 73 |
opentelemetry-sdk==1.39.1
|
| 74 |
opentelemetry-semantic-conventions==0.60b1
|
| 75 |
+
orjson==3.11.7
|
| 76 |
packaging==25.0
|
| 77 |
pandas==2.3.2
|
| 78 |
pathable==0.4.4
|
| 79 |
pathvalidate==3.3.1
|
| 80 |
+
pillow==12.1.1
|
| 81 |
platformdirs==4.3.8
|
| 82 |
prometheus-client==0.23.1
|
| 83 |
py-key-value-aio==0.3.0
|
|
|
|
| 94 |
python-dateutil==2.9.0.post0
|
| 95 |
python-dotenv==1.1.1
|
| 96 |
python-json-logger==4.0.0
|
| 97 |
+
python-multipart==0.0.22
|
| 98 |
pytz==2025.2
|
| 99 |
pyyaml==6.0.2
|
| 100 |
redis==7.1.0
|
|
|
|
| 123 |
typing-extensions==4.15.0
|
| 124 |
typing-inspection==0.4.2
|
| 125 |
tzdata==2025.2
|
| 126 |
+
urllib3==2.6.3
|
| 127 |
uvicorn==0.40.0
|
| 128 |
websockets==15.0.1
|
| 129 |
wrapt==1.17.3
|