File size: 2,929 Bytes
369b6f0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | [build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "humigence"
version = "0.1.0"
description = "A functionality-first, local GPU training pipeline for QLoRA fine-tuning"
authors = [{name = "Humigence Team"}]
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT"}
keywords = ["ai", "ml", "fine-tuning", "qlora", "local-gpu"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
dependencies = [
"torch>=2.0.0",
"transformers>=4.36.0",
"accelerate>=0.24.0",
"peft>=0.7.0",
"bitsandbytes>=0.41.0",
"datasets>=2.14.0",
"evaluate>=0.4.0",
"huggingface_hub>=0.19.0",
"tqdm>=4.65.0",
"numpy>=1.24.0",
"pydantic>=2.0.0",
"typer>=0.9.0",
"rich>=13.0.0",
"scikit-learn>=1.3.0",
"tokenizers>=0.15.0",
"safetensors>=0.4.0",
]
[project.optional-dependencies]
dev = [
"ruff>=0.1.0",
"black>=23.0.0",
"mypy>=1.5.0",
"pytest>=7.4.0",
"pytest-cov>=4.1.0",
]
[project.scripts]
humigence = "humigence.cli:app"
[project.urls]
Homepage = "https://github.com/your-org/humigence"
Repository = "https://github.com/your-org/humigence"
Documentation = "https://github.com/your-org/humigence#readme"
[tool.setuptools.packages.find]
where = ["."]
include = ["humigence*"]
[tool.setuptools.package-data]
humigence = ["py.typed", "assets/datasets/*.jsonl"]
[tool.ruff]
target-version = "py310"
line-length = 88
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
"C901", # too complex
]
[tool.ruff.per-file-ignores]
"__init__.py" = ["F401"]
[tool.black]
target-version = ['py310']
line-length = 88
include = '\.pyi?$'
extend-exclude = '''
/(
# directories
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| build
| dist
)/
'''
[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true
strict_equality = true
[[tool.mypy.overrides]]
module = [
"torch.*",
"transformers.*",
"peft.*",
"accelerate.*",
"bitsandbytes.*",
]
ignore_missing_imports = true
|