content: [project]
  authors = [{ name = "Kariba Labs" }]
  license = { text = "Apache-2.0" }
  requires-python = "<3.13,<4.0,>=3.12"
  dependencies = [
      "arrow<2.0.0,>=1.3.0",
      "boltons>=24.0.0,<26.0.0",
      "click<9.0.0,>=8.1.7",
      "clickhouse-connect<1.0.0,>=0.7.16",
      "cloud-sql-python-connector[pg8000]<2.0.0,>=1.6.0",
      "dagster<2.0.0,>=1.8.6",
      "dagster-embedded-elt<1.0.0,>=0.24.0",
      "dagster-gcp<1.0.0,>=0.24.0",
      "dagster-polars<1.0.0,>=0.24.0",
      "dagster-postgres<1.0.0,>=0.24.0",
      "dagster-webserver<2.0.0,>=1.7.16",
      "dask[distributed]>=2024.4.2,<2025.8.0",
      "dask-kubernetes>=2024.4.2,<2025.8.0",
      "discord-webhook<2.0.0,>=1.3.1",
      "dlt<2.0.0,>=1.3.0",
      "duckdb<2.0.0,>=1.1.0",
      "gcsfs>=2024.6.1,<2026.0.0",
      "google-api-python-client<3.0.0,>=2.116.0",
      "google-cloud-bigquery<4.0.0,>=3.17.1",
      "google-cloud-bigquery-datatransfer<4.0.0,>=3.15.3",
      "google-cloud-resource-manager<2.0.0,>=1.12.3",
      "google-cloud-secret-manager<3.0.0,>=2.20.0",
      "google-cloud-service-management<2.0.0,>=1.8.3",
      "google-cloud-service-usage<2.0.0,>=1.10.3",
      "google-cloud-storage>=2.14.0,<4.0.0",
      "lz4<5.0.0,>=4.3.3",
      "oss-directory==0.2.5",
      "pendulum<4.0.0,>=3.0.0",
      "polars<2.0.0,>=1.31.0",
      "pytest<9.0.0,>=8.2.1",
      "python-dotenv<2.0.0,>=1.0.1",
      "requests<3.0.0,>=2.31.0",
      "ruamel-yaml<1.0.0,>=0.18.6",
      "sqlalchemy<3.0.0,>=2.0.25",
      "redis>=5.0.7,<7.0.0",
      "githubkit>=0.12.13,<1.0.0",
      "sqlmesh[trino]<1.0.0,>=0.141.1",
      "dagster-duckdb<1.0.0,>=0.24.0",
      "dagster-duckdb-polars<1.0.0,>=0.24.0",
      "google-cloud-bigquery-storage<3.0.0,>=2.25.0",
      "google-auth<3.0.0,>=2.34.0",
      "dagster-k8s<1.0.0,>=0.24.6",
      "pyiceberg[hive,s3fs]<1.0.0,>=0.8.1",
      "connectorx<1.0.0,>=0.4.0",
      "bokeh<4.0.0,>=3.6.1",
      "fastapi[standard]<1.0.0,>=0.115.6",
      "pyee>=12.1.1,<14.0.0",
      "aiotrino<1.0.0,>=0.2.3",
      "pytest-asyncio>=0.24.0,<2.0.0",
      "isort>=5.13.2,<7.0.0",
      "uvicorn[standard]<1.0.0,>=0.32.1",
      "websockets>=14.1,<16.0",
      "pydantic-settings<3.0.0,>=2.7.0",
      "openrank-sdk<1.0.0,>=0.4.0",
      "pandas<3.0.0,>=2.2.3",
      "docker<8.0.0,>=7.1.0",
      "gitpython<4.0.0,>=3.1.44",
      "minio<8.0.0,>=7.2.15",
      "colorlog<7.0.0,>=6.9.0",
      "pyarrow-stubs>=17.16,<21.0",
      "gcloud-aio-storage<10.0.0,>=9.3.0",
      "kr8s==0.20.9",
      "structlog>=25.4.0",
      "pandas-gbq>=0.29.2",
      "dagster-sqlmesh>=0.20.0",
      "oso-core",
      "pyoso",
      "metrics-service",
      "cryo>=0.3.2",
      "web3>=7.13.0",
      "pynessie>=0.67.0",
  ]
  name = "oso"
  version = "1.0.0"
  description = "Impact measurement for open source software"
  readme = "README.md"
  
  [project.urls]
  homepage = "https://www.opensource.observer"
  repository = "https://github.com/opensource-observer/oso"
  documentation = "https://docs.opensource.observer/"
  
  [project.scripts]
  bq2cloudsql = "bq2cloudsql.script:run"
  oso_lets_go = "oso_lets_go.wizard:run"
  oso = "oso_lets_go.cli:cli"
  oso_dagster = "oso_dagster.cli:cli"
  
  [dependency-groups]
  dev = [
      "dagster-webserver<2.0.0,>=1.7.2",
      "ipython>=8.21.0,<10.0.0",
      "shandy-sqlfmt[jinjafmt]<1.0.0,>=0.21.1",
      "isort>=5.13.2,<7.0.0",
      "ruff>=0.10.0",
      "ipykernel>=6.29.5",
      "python-on-whales>=0.76.1",
      "marimo>=0.13.15",
  ]
  
  [tool.uv.sources]
  pyoso = { workspace = true }
  oso-mcp = { workspace = true }
  oso-core = { workspace = true }
  metrics-service = { workspace = true }
  
  [tool.uv.workspace]
  members = [
      "warehouse/oso_agent",
      "warehouse/oso_mcp",
      "warehouse/pyoso",
      "warehouse/pynessie-gc",
      "warehouse/metrics-service",
      "lib/oso-core",
      "warehouse/oso_semantic"
  ]
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [tool.hatch.build.targets.wheel]
  packages = [
      "warehouse/bq2cloudsql/",
      "warehouse/oso_lets_go/",
      "warehouse/common",
      "warehouse/metrics_tools",
      "ops/opsscripts/",
  ]
  
  [tool.dagster]
  module_name = "oso_dagster.definitions.default"
  
  [tool.pyright]
  pythonVersion = "3.12"
  typeCheckingMode = "standard"
  ignore = [
      "warehouse/bq2cloudsql",
      "warehouse/oso_lets_go",
      "warehouse/oso_dagster/dlt_sources/sql_database"
  ]
  
  [tool.ruff]
  exclude = [
      "warehouse/bq2cloudsql",
      "warehouse/oso_lets_go",
      "warehouse/oso_dagster/dlt_sources",
      "warehouse/oso_dagster/dlt_sources/sql_database/**/*.py",
      "warehouse/oso_dagster/dlt_sources/sql_database/*.py",
  ]
  
  [tool.ruff.lint]
  exclude = [
      "warehouse/oso_dagster/dlt_sources/sql_database/**/*.py",
      "warehouse/oso_dagster/dlt_sources/sql_database/*.py",
  ]
  
  [tool.isort]
  profile = "black"
  