Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
171 lines (158 loc) 路 5.06 KB
/
Copy pathpyproject.toml
File metadata and controls
171 lines (158 loc) 路 5.06 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
[project]
name = "abx-dl"
version = "1.13.173"
requires-python = ">=3.12,<3.15"
description = "All-in-one CLI tool to download and extract content from URLs"
authors = [{name = "Nick Sweeting"}, {name = "ArchiveBox"}]
license = {text = "MIT"}
readme = "README.md"
keywords = ["scraping", "crawling", "downloading", "internet archiving", "web archiving", "digipres", "warc", "preservation", "backups", "archiving", "web", "bookmarks", "puppeteer", "browser", "download"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Information Technology",
"Intended Audience :: Legal Industry",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Indexing/Search",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
"Topic :: Sociology :: History",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Archiving",
"Topic :: System :: Archiving :: Backup",
"Topic :: System :: Recovery Tools",
"Topic :: Utilities",
"Typing :: Typed",
]
dependencies = [
"rich-click>=1.8.0",
"rich>=13.0.0",
"abxbus==2.5.77",
"abxpkg==1.13.47",
"abx-plugins==1.13.254",
"pydantic>=2.0.0",
"pydantic-settings>=2.0.0",
"platformdirs>=4.0.0",
"requests>=2.28.0",
# psutil 7.2.2 can raise EINVAL from pidfd_open when a child exits during
# Process.wait()/wait_procs(), breaking real ripgrep close/timeout cleanup
# in Linux CI: https://github.com/giampaolo/psutil/issues/2715
# Upstream fix: 0195d11ed0f6106ff1371ff379bb47454130d770 (planned for 7.2.3).
# Remove this exclusion only when the minimum version is a published release
# containing that fix and tests/test_search_command_lifecycle.py passes on
# Linux with it. A closed issue or a newer installed version is insufficient:
# keeping the >=7.2.1 floor without the exclusion still permits broken 7.2.2.
# Later versions remain allowed; this is not a ceiling on psutil upgrades.
"psutil>=7.2.1,!=7.2.2",
]
[dependency-groups]
dev = [
# TESTING
"flask>=3.0",
"pytest>=8.3.3,<10",
"pytest-codeblocks>=0.17.0",
"pytest-github-actions-annotate-failures>=0.4.0",
"pytest-httpserver>=1.1.0",
"pytest-sugar>=1.0.0",
"pytest-timeout>=2.3.1",
"pytest-xdist>=3.5.0",
# LINTING / TYPECHECKING
"flake8>=7.1.1",
"mypy>=1.11.2",
"pdm-backend>=2.4.0",
"prek>=0.3.6",
"pyright>=1.1.408",
"ruff>=0.15.7",
"ty>=0.0.24",
"markdown>=3.10.3",
]
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
# https://github.com/astral-sh/uv/issues/3957
[tool.pdm.build]
includes = [
"abx_dl/",
]
excludes = [
".DS_Store",
"**/.DS_Store",
".gitignore",
"tests/",
"tests/**",
]
[tool.ruff]
line-length = 140
target-version = "py311"
src = ["abx_dl"]
exclude = ["*.pyi", "typings/", "migrations/", "vendor/"]
# https://docs.astral.sh/ruff/rules/
[tool.ruff.lint]
ignore = ["E731", "E303", "E266", "E241", "E222"]
[tool.pytest.ini_options]
testpaths = [ "tests", "server/tests", "README.md", "AGENTS.md", "CLAUDE.md", "skills" ]
addopts = ["--codeblocks"]
markers = [
"docker_required: documentation commands that require the current abx-dl Docker image",
]
timeout = 600
timeout_method = "thread"
[tool.uv]
required-version = ">=0.10.0"
exclude-newer = "5 days"
exclude-newer-package = { abx-dl = "2100-01-01T00:00:00Z", abxpkg = "2100-01-01T00:00:00Z", abxbus = "1 second", abx-plugins = "2100-01-01T00:00:00Z" }
[tool.mypy]
mypy_path = "abx_dl,tests,server,abx_dl/typings"
namespace_packages = true
explicit_package_bases = true
[tool.pyright]
include = [
"abx_dl",
"tests",
"server",
]
extraPaths = [
"abx-plugins",
"../abx-plugins",
"abxpkg",
"../abxpkg",
"abxbus",
"../abxbus",
]
exclude = [
".venv",
"**/*.pyi",
"**/__init__.pyi",
"**/node_modules",
"**/__pycache__",
"**/migrations",
"abx_dl/vendor",
]
stubPath = "./abx_dl/typings"
venvPath = "."
venv = ".venv"
reportMissingImports = true
reportMissingTypeStubs = false
pythonVersion = "3.12"
pythonPlatform = "Linux"
[project.scripts]
abx-dl = "abx_dl:main"
[project.urls]
Homepage = "https://abx-dl.archivebox.io/"
Source = "https://github.com/ArchiveBox/abx-dl"
Documentation = "https://abx-dl.archivebox.io/"
"Bug Tracker" = "https://github.com/ArchiveBox/abx-dl/issues"
Changelog = "https://github.com/ArchiveBox/abx-dl/releases"
Community = "https://github.com/ArchiveBox/ArchiveBox/wiki/Web-Archiving-Community"
Donate = "https://github.com/ArchiveBox/ArchiveBox/wiki/Donations"