[project] name = "h2o-llmstudio" version = "1.16.0-dev" readme = "README.md" license = {file = "LICENSE"} requires-python = "==3.12.*" dependencies = [ "torch==2.13.0", "tqdm>=4.65.0,<5.0.0", "transformers==5.15.0", "numpy>=1.26.0, <2.0.0", "pandas>=2.2.0, <3.0.0", "scikit-learn>=1.5.1, <2.0.0", "boto3>=1.20.24, <2.0.0", "SQLAlchemy>=2.0.25, <3.0.0", "dill>=0.3.8, <0.4.0", "pyarrow>=14.0.1", "kaggle>=1.7.4, <2.0.0", "coolname>=2.2.0, <3.0.0", "bokeh>=3.5.0, <4.0.0", "beautifulsoup4>=4.11.1, <5.0.0", "sentencepiece>=0.2.0, <0.3.0", "sacrebleu==2.5.1", "toml>=0.10.2, <0.11.0", "pyyaml>=6.0.0, <7.0.0", "protobuf>=3.20.3", "gputil>=1.4.0, <2.0.0", "huggingface-hub==1.27.0", "bitsandbytes==0.49.1", "accelerate==1.15.0", "openai>=1.12.0, <2.0.0", "einops==0.8.1", "datasets>=5.0.1, <6.0.0", "wandb>=0.31.0, <1.0.0", "Jinja2>=3.1.3, <4.0.0", "h2o-drive>=3.0.0, <4.0.0", "h2o-wave>=1.8.16, <2.0.0", "tiktoken==0.9.0", "peft==0.19.1", "azure-storage-file-datalake>=12.12.0", "deepspeed==0.19.5", "ninja>=1.11.1.1", "keyring>=25.2.1, <26.0.0", "pydantic>=2.8.2, <3.0.0", ] [dependency-groups] dev = [ "coverage==7.5.1", "mypy==1.10.0", "pytest==9.0.3", "pytest-cov==5.0.0", "pytest-dependency==0.6.0", "pytest-html>=4.1.1, <5.0.0", "types-pyyaml>=6.0", "types-requests>=2.31", "types-toml>=0.10", "wheel==0.46.2", "pytest-bdd==7.1.2", "pytest-base-url==2.1.0", "pytest-mock==3.14.0", "hac_playwright", ] [tool.uv] required-version = ">=0.13.5" environments = [ "platform_machine == 'x86_64' and sys_platform == 'linux'", ] [tool.uv.sources] torch = { index = "pytorch" } hac_playwright = { url = "https://h2oai-qa-test-assets.s3.amazonaws.com/wheels/h2o_playwright/hac_playwright-1.48.0-py3-none-any.whl" } [[tool.uv.index]] name = "pytorch" url = "https://download.pytorch.org/whl/cu130/" explicit = true [tool.ruff] line-length = 88 indent-width = 4 target-version = "py312" exclude = [ ".eggs", ".git", ".hg", ".mypy_cache", ".nox", ".tox", ".venv", ".svn", "_build", "buck-out", "build/", "dist/", "output/", "data/", "tests/", ] [tool.ruff.format] quote-style = "double" # Like Black, use double quotes for strings. indent-style = "space" # Like Black, indent with spaces, rather than tabs. skip-magic-trailing-comma = false # Like Black, respect magic trailing commas. line-ending = "auto" # Like Black, automatically detect the appropriate line ending. [tool.ruff.lint] select = [ "E", # pycodestyle "W", # pycodestyle "F", # Pyflakes # "UP", # pyupgrade # "B", # flake8-bugbear # "C4", # comprehensions # "SIM", # flake8-simplify "I", # isort # "ERA", # eradicate # "T20", # print # "PL", # pylint ] [tool.isort] multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true line_length = 88 [tool.mypy] ignore_missing_imports = true allow_redefinition = true strict_optional = false exclude = "(build|output|data|tests)"