Spaces:
Sleeping
Sleeping
| [build-system] | |
| requires = ["setuptools"] | |
| build-backend = "setuptools.build_meta" | |
| [project] | |
| name = "ddgs" | |
| description = "Dux Distributed Global Search. A metasearch library that aggregates results from diverse web search services." | |
| readme = "README.md" | |
| requires-python = ">=3.10" | |
| license = "MIT" | |
| keywords = ["python", "search", "metasearch"] | |
| authors = [ | |
| {name = "deedy5"} | |
| ] | |
| classifiers = [ | |
| "Development Status :: 5 - Production/Stable", | |
| "Operating System :: OS Independent", | |
| "Programming Language :: Python :: 3", | |
| "Programming Language :: Python :: 3 :: Only", | |
| "Programming Language :: Python :: 3.10", | |
| "Programming Language :: Python :: 3.11", | |
| "Programming Language :: Python :: 3.12", | |
| "Programming Language :: Python :: 3.13", | |
| "Programming Language :: Python :: 3.14", | |
| "Programming Language :: Python :: Implementation :: CPython", | |
| "Topic :: Internet :: WWW/HTTP :: Indexing/Search", | |
| "Topic :: Software Development :: Libraries :: Python Modules", | |
| ] | |
| dependencies = [ | |
| "click>=8.1.8", | |
| "primp>=0.15.0", | |
| "lxml>=4.9.4", | |
| "httpx[http2,socks,brotli]>=0.28.1", # temporarily | |
| "fake-useragent>=2.2.0", | |
| ] | |
| dynamic = ["version"] | |
| [project.urls] # Optional | |
| "Homepage" = "https://github.com/deedy5/ddgs" | |
| [project.scripts] | |
| ddgs = "ddgs.cli:safe_entry_point" | |
| [tool.setuptools.dynamic] | |
| version = {attr = "ddgs.__version__"} | |
| [tool.setuptools.packages.find] | |
| include = ["ddgs*"] | |
| exclude = ["api*"] | |
| [project.optional-dependencies] | |
| dev = [ | |
| "mypy>=1.17.1", | |
| "pre-commit", | |
| "pytest>=8.4.1", | |
| "pytest-dependency>=0.6.0", | |
| "ruff>=0.13.0", | |
| # for mypy | |
| "lxml-stubs", | |
| "types-Pygments", | |
| "types-pexpect", | |
| "types-PyYAML", | |
| "types-ujson" | |
| ] | |
| api = [ | |
| "fastapi[standard]>=0.104.0", | |
| "fastapi-mcp>=0.4.0", | |
| ] | |
| [tool.ruff] | |
| line-length = 120 | |
| exclude = ["tests"] | |
| [tool.ruff.lint] | |
| select = [ | |
| # Core rules | |
| "E", # pycodestyle errors | |
| "W", # pycodestyle warnings | |
| "F", # pyflakes | |
| "I", # isort | |
| # Enhanced rules | |
| "ERA", # eradicate | |
| "YTT", # flake8-2020 | |
| "ANN", # flake8-annotations | |
| "ASYNC", # flake8-async | |
| "S", # flake8-bandit | |
| "BLE", # flake8-blind-except | |
| "FBT", # flake8-boolean-trap | |
| "B", # flake8-bugbear | |
| "A", # flake8-builtins | |
| "COM", # flake8-commas | |
| "C4", # flake8-comprehensions | |
| "DTZ", # flake8-datetimez | |
| "T10", # flake8-debugger | |
| "EM", # flake8-errmsg | |
| "FIX", # flake8-fixme | |
| "FA", # flake8-future-annotations | |
| "INT", # flake8-gettext | |
| "ISC", # flake8-implicit-str-concat | |
| "ICN", # flake8-import-conventions | |
| "LOG", # flake8-logging | |
| "G", # flake8-logging-format | |
| "INP", # flake8-no-pep420 | |
| "PIE", # flake8-pie | |
| "T20", # flake8-print | |
| "PYI", # flake8-pyi | |
| "PT", # flake8-pytest-style | |
| "Q", # flake8-quotes | |
| "RSE", # flake8-raise | |
| "RET", # flake8-return | |
| "SLF", # flake8-self | |
| "SIM", # flake8-simplify | |
| "SLOT", # flake8-slots | |
| "TID", # flake8-tidy-imports | |
| "TD", # flake8-todos | |
| "TC", # flake8-type-checking | |
| "ARG", # flake8-unused-arguments | |
| "PTH", # flake8-use-pathlib | |
| "FLY", # flynt | |
| "C90", # mccabe | |
| "N", # pep8-naming | |
| "PERF", # perflint | |
| "PGH", # pygrep-hooks | |
| "PL", # Pylint | |
| "UP", # pyupgrade | |
| "FURB", # refurb | |
| "RUF", # ruff-specific rules | |
| "TRY", # tryceratops | |
| # Documentation | |
| "D", # pydocstyle | |
| ] | |
| ignore = [ | |
| "COM812", # Missing trailing comma (handled by formatter) | |
| "D107", # Missing docstring in `__init__` | |
| "D203", # incorrect-blank-line-before-class | |
| "D213", # multi-line-summary-second-line | |
| "N818", # Exception name {name} should be named with an Error suffix | |
| "PLR0913", # Too many arguments to function call | |
| "PLR2004", # Magic value used in comparison | |
| "SLF001", # Private member accessed | |
| ] | |
| [tool.mypy] | |
| python_version = "3.10" | |
| strict = true | |
| exclude = ["build/"] | |