Files
AstrAI/pyproject.toml
T
ViperEkura 164be9708b refactor: migrate config system to Pydantic dataclasses
- Replace hand-rolled BaseConfig (from_dict/to_dict/_coerce/_unwrap_optional) with pydantic.dataclasses
- from_dict now uses cls(**d), to_dict uses dataclasses.asdict + json.dumps filter
- TrainConfig: required fields are now truly required (no default=None), delete manual validate()/__post_init__
- Remove dead required() helper and metadata={'help': ...} annotations
- Fix gradient_checkpointing_modules type from List[str] to List[type]
- Add pydantic>=2.0 as direct dependency in pyproject.toml
- Add numpy-style Parameters docstrings to all config classes
- Enable use_attribute_docstrings in BaseConfig for schema generation
- LoRAConfig also migrated to pydantic dataclass
2026-07-30 08:25:32 +08:00

53 lines
1.2 KiB
TOML

[build-system]
requires = ["setuptools>=64", "wheel"]
build-backend = "setuptools.build_meta"
[project]
dynamic = ["version"]
name = "astrai"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"numpy==2.4.4",
"torch==2.11.0",
"tokenizers==0.21.4",
"tqdm==4.67.1",
"safetensors==0.5.3",
"huggingface-hub==0.34.3",
"jinja2>=3.0.0",
"pydantic>=2.0",
"fastapi",
"uvicorn[standard]",
"click>=8.0",
"pyyaml>=6.0",
]
keywords = ["nlp", "datasets", "language-models", "machine-learning"]
license = { text = "GPL-3.0" }
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GPL-3.0",
"Operating System :: OS Independent",
]
urls = { Homepage = "https://github.com/ViperEkura/AstrAI" }
[project.optional-dependencies]
dev = ["pytest==9.0.2", "ruff", "httpx2"]
[tool.setuptools.packages.find]
where = ["."]
[tool.pip]
extra-index-url = "https://download.pytorch.org/whl/cu128"
[tool.setuptools.dynamic]
version = { attr = "astrai.__version__" }
[tool.ruff]
target-version = "py312"
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
exclude = ["*.md", "*.json", "*.yml", "*.yaml"]