-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
87 lines (77 loc) · 2.79 KB
/
Copy pathpyproject.toml
File metadata and controls
87 lines (77 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "deepagent"
version = "0.1.0"
description = "Hard SWE benchmark dataset factory (Docker-verifiable gold tasks)"
readme = "README.md"
requires-python = ">=3.12"
license = { text = "MIT" }
authors = [{ name = "SWE Dataset Factory" }]
dependencies = [
"pydantic>=2.6",
"pydantic-settings>=2.2",
"typer>=0.12",
"httpx==0.28.1",
# SOCKS5/socks5h for GitHub REST via OXYLABS_PROXY_URL (M28 VAL-DCOV-001).
# httpx uses socksio (HTTP CONNECT not enough); PySocks also accepted.
"socksio>=1.0.0",
"PySocks>=1.7.1",
"python-dotenv>=1.0",
# Structural pack load smoke (TaskConfig / TaskPaths) for ship_harbor / pier cert.
# Offline unit ships and pier-ready hooks require this; installer must match product.
"harbor==0.18.0",
# HF pack upload/pull for BaseIntelligence/deepagent (M16).
"huggingface_hub>=0.23",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-xdist>=3.5",
"ruff>=0.6",
"mypy>=1.10",
"types-requests",
# SOCKS extras already on main deps; listed for installer clarity (httpx[socks]).
"httpx[socks]==0.28.1",
]
[project.scripts]
deepagent = "swe_factory.deepagent_cli:app"
swe-factory = "swe_factory.cli:app"
[tool.setuptools.packages.find]
where = ["src"]
[tool.pytest.ini_options]
testpaths = ["tests"]
markers = [
"integration: marks tests that need Docker or live services",
]
# Disable pytest-mypy (auto-enabled via pytest-enabler when present). Official
# typecheck is `commands.typecheck` (mypy src). pytest-mypy+xdist dual-loads
# tests as both "test_X" and "tests.test_X" after import styles like
# `from tests.test_envbuild import FakeDocker`, which is unrelated to product code.
# Disable ambient entry-point plugins that break collect under modern deps:
# - pytest-mypy: dual-loads via pytest-enabler (see comment above)
# - pytest-httpbin: pulls httpbin which imports removed werkzeug.http.parse_authorization_header
# - pytest-cov: ambient cov plugin can break if host coverage package is mismatched
# Project tests do not use httpbin fixtures; coverage is not part of unit gate.
addopts = "-p no:cacheprovider -p no:mypy -p no:httpbin -p no:cov"
[tool.ruff]
line-length = 100
target-version = "py312"
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
[tool.mypy]
python_version = "3.12"
strict = true
packages = ["swe_factory"]
mypy_path = "src"
warn_unused_configs = true
# Optional third-party Harbor runtime: may be absent offline; imports are guarded.
[[tool.mypy.overrides]]
module = ["harbor", "harbor.*"]
ignore_missing_imports = true
# huggingface_hub is a declared dep; keep override for environments mid-install.
[[tool.mypy.overrides]]
module = ["huggingface_hub", "huggingface_hub.*"]
ignore_missing_imports = true