DataDesigner/pyproject.toml
2025-10-28 14:10:56 -04:00

118 lines
2.8 KiB
TOML

[project]
name = "data-designer"
dynamic = ["version"]
description = "General framework for synthetic data generation"
readme = "README.md"
requires-python = ">=3.10"
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Scientific/Engineering :: Human Machine Interfaces",
"Topic :: Software Development",
"License :: Other/Proprietary License",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
dependencies = [
"huggingface-hub>=0.34.4",
"jinja2>=3.1.6,<4",
"numpy>=1.23.5",
"pandas>=1.5.3",
"pyarrow>=19.0.1",
"pydantic>=2.9.2",
"pygments>=2.19.2",
"pyyaml>=6.0.1",
"python-json-logger==2.0.7",
"requests<3,>=2.32.2",
"rich>=13.7.1",
"anyascii>=0.3.3,<1.0",
"boto3==1.35.74",
"datasets>=4.0.0",
"duckdb==1.1.3",
"faker==20.1.0",
"httpx>=0.27.2",
"httpx-retries>=0.4.2",
"json-repair==0.48.0",
"jsonpath-rust-bindings>=1.0",
"litellm==1.73.6",
"lxml>=6.0.2",
"marko==2.1.2",
"networkx==3.0",
"pydantic[email]>=2.9.2",
"scipy>=1.11.0",
"smart-open==7.0.5",
"sqlfluff==3.2.0",
"tiktoken>=0.8.0",
"ruff==0.12.3",
]
[dependency-groups]
dev = [
"jsonpath-ng==1.5.3",
"pre-commit>=4.0.0",
"pytest>=8.3.3",
"pytest-asyncio>=0.24.0",
"pytest-cov>=7.0.0",
"pytest-httpx>=0.35.0",
]
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[tool.hatch.version]
source = "vcs"
fallback-version = "0.1.0.dev0"
[tool.hatch.build.hooks.vcs]
version-file = "src/data_designer/_version.py"
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_default_fixture_loop_scope = "session"
[tool.uv]
package = true
required-version = ">=0.7.10"
[tool.ruff]
line-length = 120
indent-width = 4
[tool.ruff.lint]
select = [
# "E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort (import sorting)
# "N", # pep8-naming
# "UP", # pyupgrade (modern Python syntax)
# "ANN", # flake8-annotations (enforce type hints)
# "B", # fla e8-bugbear (common bugs)
# "C4", # flake8-comprehensions
# "DTZ", # flake8-datetimez (timezone awareness)
"ICN", # flake8-import-conventions
"PIE", # flake8-pie (misc lints)
# "RET", # flake8-return
# "SIM", # flake8-simplify
# "PTH", # flake8-use-pathlib
]
ignore = [
"ANN401", # Dynamically typed expressions (Any)
]
[tool.ruff.lint.isort]
known-first-party = ["data_designer"]
force-sort-within-sections = true
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"