blizzarman/polyglot-tutor
0
1[project]2name = "polyglot-tutor"3version = "0.1.0"4description = "Adaptive language tutor: CEFR-aware exercises across the four skills, driven by a predictive spaced-repetition learner model."5readme = "README.md"6requires-python = ">=3.12"7license = "MIT"8authors = [{ name = "Arthur" }]9dependencies = [10 # Runtime deps only — keep the Docker image (HF Space, cpu-basic) lean.11 "gradio>=6.17,<7",12 "huggingface-hub>=1.18.0",13 "jiwer>=4.0.0",14 "numpy>=2.4.6",15 "onnxruntime>=1.26.0",16 "openai>=2.41,<3", # single OpenAI-compatible client: Gemini / Mistral / Ollama / OpenAI (ADR 0002)17 "pydantic>=2.8",18 "pydantic-settings>=2.14,<3",19 "tokenizers>=0.22.2",20]21 22[dependency-groups]23dev = [24 "pytest>=9.0",25 "pytest-asyncio>=1.4",26 "ruff==0.15.16", # exact pin, mirrored in .pre-commit-config.yaml27 "pre-commit>=4.6",28]29data = [30 # Dataset download / EDA (UniversalCEFR & friends). Not in the runtime image.31 "datasets>=5.0",32 "huggingface-hub>=1.18.0",33]34train = [35 "accelerate>=1.14.0",36 # M1: transformers, torch (CUDA, local GPU), optimum/onnxruntime for CPU export.37 "datasets>=5.0.0",38 "mlflow>=3.13.0",39 "onnx>=1.21.0",40 "torch>=2.12.0",41 "transformers>=5.11.0",42]43asr = [44 "faster-whisper>=1.0",45 "soundfile>=0.12",46]47 48[build-system]49requires = ["hatchling"]50build-backend = "hatchling.build"51 52[tool.hatch.build.targets.wheel]53packages = ["src/tutor"]54 55[tool.ruff]56target-version = "py312"57line-length = 10058src = ["src", "tests", "scripts"]59 60[tool.ruff.lint]61select = [62 "E", "W", # pycodestyle63 "F", # pyflakes64 "I", # isort65 "UP", # pyupgrade66 "B", # bugbear67 "SIM", # simplify68 "C4", # comprehensions69 "PTH", # pathlib70 "RET", # return71 "ASYNC", # async pitfalls72 "RUF",73]74 75[tool.pytest.ini_options]76testpaths = ["tests"]77asyncio_mode = "auto"78addopts = "-q"79 