[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"


[project]
name = "CmonCrawl"

dynamic = ["version", "dependencies"]

keywords = [
  "Common Crawl",
  "Crawl",
  "Extractor",
  "Common Crawl Extractor",
  "Web Crawler",
  "Web Extractor",
  "Web Scraper",
]

readme = "README.md"
license = {file = "LICENSE"}

classifiers = [
    "Development Status :: 3 - Alpha",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.11",
]
[tool.setuptools_scm]


[tool.setuptools.dynamic]
dependencies = {file = "requirements.txt"}

[tool.setuptools.packages.find]
include = ["cmoncrawl*"]
exclude = ["tests*", "docs*", "examples*"]

[tool.setuptools.package-data]
"cmoncrawl" = ["py.typed"]

[project.scripts]
cmon = "cmoncrawl.integrations.commands:main"

[tool.ruff]
line-length = 88
indent-width = 4

# Assume Python 3.11
target-version = "py311"

[tool.ruff.lint]
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.
# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
# McCabe complexity (`C901`) by default.
select = ["E4", "E7", "E9", "F", "I"]
ignore = []

# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []

# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"

# Like Black, indent with spaces, rather than tabs.
indent-style = "space"

# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false

# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"

[project.urls]
Source = "https://github.com/hynky1999/CmonCrawl"
