pyproject.toml (98 lines of code) (raw):
[build-system]
requires = ["setuptools>=64"]
build-backend = "setuptools.build_meta"
[project]
name= "mozilla-jetstream"
# This project does not issue regular releases, only when there
# are changes that would be meaningful to our (few) dependents.
version="2025.2.1"
authors=[{name = "Mozilla Corporation", email="fx-data-dev@mozilla.org"}]
description="Runs a thing that analyzes experiments"
readme = "README.md"
requires-python=">=3.10,<3.11"
dependencies=[
"attrs",
"cattrs",
"Click",
"dask[distributed]",
"db-dtypes",
"GitPython",
"google-cloud-artifact-registry",
"google-cloud-bigquery",
"google-cloud-bigquery-storage",
"google-cloud-container",
"google-cloud-storage",
"grpcio", # https://github.com/googleapis/google-cloud-python/issues/6259
"jinja2",
"mozanalysis",
"mozilla-metric-config-parser",
"mozilla-nimbus-schemas",
"pyarrow",
"pytz",
"PyYAML",
"requests",
"scikit-learn",
"smart_open[gcs]",
"statsmodels",
"toml",
]
[project.scripts]
jetstream = "jetstream.cli:cli"
[project.urls]
Repository = "https://github.com/mozilla/jetstream"
Documentation = "https://experimenter.info/deep-dives/jetstream/overview"
[project.optional-dependencies]
testing = [
"coverage",
"jsonschema",
"mypy",
"pytest",
"pytest-cov",
"pytest-ruff",
"ruff",
"tox",
"types-futures",
"types-protobuf",
"types-pytz",
"types-PyYAML",
"types-requests",
"types-setuptools",
"types-six",
"types-toml",
]
[tool.setuptools]
packages = [
"jetstream",
"jetstream.diagnostics",
"jetstream.logging",
"jetstream.tests",
"jetstream.tests.integration",
"jetstream.workflows",
]
[tool]
[tool.setuptools.package-data]
jetstream = ["../platform_config.toml"]
"jetstream.tests" = ["data/*"]
"jetstream.workflows" = ["*.yaml"]
# [tool.setuptools_scm]
[tool.ruff]
line-length=100
exclude = [".git","__pycache__"]
target-version = "py310"
[tool.ruff.lint]
ignore= ["E741", "RUF005", "RUF012", "SIM105"]
select = [
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"E", # pycodestyle
"F", # Pyflakes
"I", # isort
"PT", # flake8-pytest-style
"Q", # flake8-quotes
"RUF", # Ruff-specific rules
"SIM", # flake8-simplify
"TC", # flake8-type-checking
"TID", # flake8-tidy-imports
"UP", # pyupgrade
"W", # pycodestyle
]