Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "preswald"
version = "0.1.59"
description = "A lightweight data workflow SDK"
readme = "README.md"
requires-python = ">=3.10"
license = "Apache-2.0"
authors = [{ name = "Structured Labs", email = "founders@structuredlabs.com" }]

dependencies = [
    "pandas>=1.5",
    "toml==0.10.2",
    "plotly==5.24.1",
    "markdown>=3.4.0",
    "matplotlib>=3.8.4",
    "httpx>=0.23.0,<1.0.0",
    "python-multipart>=0.0.5,<0.1.0",
    "jinja2>=3.1.3",
    "click>=8.1.7",
    "networkx>=3.0",
    "requests>=2.31.0",
    "tomli>=2.0.1",
    # Server-only dependencies
    "fastapi>=0.68.0,<1.0.0; platform_system != 'Emscripten'",
    # "fastplotlib[imgui]~=0.3.0; platform_system != 'Emscripten'",
    # "imageio~=2.37.0; platform_system != 'Emscripten'",
    "msgpack~=1.1.0",
    "uvicorn>=0.15.0,<1.0.0; platform_system != 'Emscripten'",
    "websockets>=10.0,<11.0; platform_system != 'Emscripten'",
    # Native code dependencies
    "duckdb>=1.1.2",
    "scipy>=1.15.2; platform_system != 'Emscripten'",
]

[project.optional-dependencies]
dev = ["pytest>=8.3", "build", "twine", "ruff>=0.1.11", "pre-commit>=3.5.0"]
playwright = ["playwright>=1.15.0,<2.0.0; platform_system != 'Emscripten'"]

[project.scripts]
preswald = "preswald.cli:cli"

[tool.hatch.build.targets.wheel]
packages = ["preswald"]

[tool.hatch.build]
artifacts = [
    "preswald/static/*",
    "preswald/static/assets/*",
    "preswald/templates/*",
    "preswald/tutorial/*",
    "preswald/tutorial/data/*",
    "preswald/tutorial/images/*",
]

[tool.ruff]
line-length = 88
target-version = "py310"

lint.select = [
    "E",   # pycodestyle errors
    "F",   # pyflakes
    "B",   # flake8-bugbear
    "C",   # flake8-comprehensions
    "I",   # isort
    "N",   # pep8-naming
    "UP",  # pyupgrade
    "PT",  # pytest
    "RUF", # Ruff-specific rules
    "W",   # pycodestyle warnings
]

lint.ignore = [
    "E501", # Line length (handled by Black)
    "B008", # Do not perform function call in argument defaults
]

exclude = [
    ".git",
    ".ruff_cache",
    "__pycache__",
    "build",
    "dist",
    "frontend",
    "*.egg-info",
    ".eggs",
    "community_gallery",
]

fix = true
unsafe-fixes = false

[tool.ruff.lint.per-file-ignores]
"tests/*" = ["PLR2004"]
"__init__.py" = ["F401"]

[tool.ruff.lint.mccabe]
max-complexity = 12

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.ruff.lint.isort]
lines-after-imports = 2
section-order = [
    "future",
    "standard-library",
    "third-party",
    "first-party",
    "local-folder",
]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"