wip major changes

This commit is contained in:
Nick Sweeting
2025-12-24 20:09:51 -08:00
parent c1335fed37
commit 1915333b81
450 changed files with 35814 additions and 19015 deletions

View File

@@ -41,7 +41,7 @@ dependencies = [
"setuptools>=74.1.0", # for: django 5 on python >=3.12, distutils is no longer in stdlib but django 5.1 expects distutils (TODO: check if this can be removed eventually)
"django>=6.0",
"channels[daphne]>=4.1.0",
"django-ninja>=1.3.0",
"django-ninja>=1.5.1",
"django-extensions>=3.2.3",
"django-huey>=1.2.1",
"django-huey-monitor>=0.9.0",
@@ -51,7 +51,6 @@ dependencies = [
"django-taggit==6.1.0", # TODO: remove this in favor of KVTags only
### State Management
"pluggy>=1.5.0", # for: archivebox plugin system (abx)
"python-statemachine>=2.3.6",
### CLI / Logging
@@ -61,7 +60,6 @@ dependencies = [
"ipython>=8.27.0", # for: archivebox shell (TODO: replace with bpython?)
### Host OS / System
"abx-pkg>=0.6.0", # for: Binary, BinProvider, SemVer and archivebox install
"supervisor>=4.2.5", # for: archivebox server starting daphne and workers
"psutil>=6.0.0", # for: monitoring orchestractor,actors,workers,etc. and machine.models.Process
"platformdirs>=4.3.6", # for: finding a xdg-config dir to store tmp/lib files in
@@ -71,10 +69,10 @@ dependencies = [
"croniter>=3.0.3", # for: archivebox schedule (TODO: remove this in favor of our own custom archivebox scheduler)
### Base Types
"pydantic>=2.8.0", # for: archivebox.api (django-ninja), Binary & BinProvider (abx-pkg), archivebox.config (pydantic-settings), and archivebox.index.schema (pydantic)
"pydantic>=2.8.0", # for: archivebox.api (django-ninja), archivebox.config (pydantic-settings), and archivebox.index.schema (pydantic)
"pydantic-settings>=2.5.2", # for: archivebox.config
"python-benedict[io,parse]>=0.33.2", # for: dict replacement all over the codebase to allow .attr-style access
"blake3>=1.0.0", # TODO: remove this in favor of sha256 everywhere?
"base32-crockford>=0.3.0", # for: encoding UUIDs in base32
### Static Typing
"mypy-extensions>=1.0.0", # for: django-stubs type hints (TODO: remove in favor of pylance/pyright?)
@@ -91,40 +89,11 @@ dependencies = [
"tzdata>=2024.2", # needed for dateparser {TZ: UTC} on some systems: https://github.com/ArchiveBox/ArchiveBox/issues/1553
"w3lib>=2.2.1", # used for parsing content-type encoding from http response headers & html tags
### Main Plugin Interfaces
"abx>=0.1.0",
"abx-spec-abx-pkg>=0.1.1",
"abx-spec-config>=0.1.0",
"abx-spec-archivebox>=0.1.0",
"abx-spec-django>=0.1.0",
"abx-spec-extractor>=0.1.0",
"abx-spec-searchbackend>=0.1.0",
### Extractor dependencies (optional binaries detected at runtime via shutil.which)
"yt-dlp>=2024.1.0", # for: media extractor
### Default Plugins
"abx-plugin-default-binproviders>=2024.10.24",
"abx-plugin-pip>=2024.10.24",
"abx-plugin-npm>=2024.10.24",
"abx-plugin-playwright>=2024.10.24",
"abx-plugin-puppeteer>=2024.10.28",
"abx-plugin-ripgrep-search>=2024.10.28",
"abx-plugin-sqlitefts-search>=2024.10.28",
"abx-plugin-sonic-search>=2024.10.28",
"abx-plugin-ldap-auth>=2024.10.28",
"abx-plugin-curl>=2024.10.27",
"abx-plugin-wget>=2024.10.28",
"abx-plugin-git>=2024.10.28",
"abx-plugin-chrome>=2024.10.28",
"abx-plugin-ytdlp>=2024.10.28",
"abx-plugin-title>=2024.10.27",
"abx-plugin-favicon>=2024.10.27",
# "abx-plugin-headers>=2024.10.27",
"abx-plugin-archivedotorg>=2024.10.28",
"abx-plugin-singlefile>=2024.10.28",
"abx-plugin-readability>=2024.10.28",
"abx-plugin-mercury>=2024.10.28",
"abx-plugin-htmltotext>=2024.10.28",
# TODO: add gallery-dl
# TODO: add forum-dl
### Binary/Package Management
"abx-pkg>=0.1.0", # for: detecting, versioning, and installing binaries via apt/brew/pip/npm
]
[project.optional-dependencies]
@@ -193,50 +162,8 @@ dev-dependencies = [
"mypy>=1.11.2",
]
[tool.uv.sources]
# abx-pkg = { workspace = true }
abx = { workspace = true }
abx-spec-abx-pkg = { workspace = true }
abx-spec-config = { workspace = true }
abx-spec-archivebox = { workspace = true }
abx-spec-django = { workspace = true }
abx-spec-extractor = { workspace = true }
abx-spec-searchbackend = { workspace = true }
abx-plugin-default-binproviders = { workspace = true }
abx-plugin-pip = { workspace = true }
abx-plugin-npm = { workspace = true }
abx-plugin-playwright = { workspace = true }
abx-plugin-puppeteer = { workspace = true }
abx-plugin-ripgrep-search = { workspace = true }
abx-plugin-sqlitefts-search = { workspace = true }
abx-plugin-sonic-search = { workspace = true }
abx-plugin-ldap-auth = { workspace = true }
abx-plugin-curl = { workspace = true }
abx-plugin-wget = { workspace = true }
abx-plugin-git = { workspace = true }
abx-plugin-chrome = { workspace = true }
abx-plugin-ytdlp = { workspace = true }
abx-plugin-title = { workspace = true }
abx-plugin-favicon = { workspace = true }
# abx-plugin-headers = { workspace = true }
abx-plugin-archivedotorg = { workspace = true }
abx-plugin-singlefile = { workspace = true }
abx-plugin-readability = { workspace = true }
abx-plugin-mercury = { workspace = true }
abx-plugin-htmltotext = { workspace = true }
[tool.uv.workspace]
members = ["archivebox/pkgs/*"]
exclude = ["archivebox/pkgs/__pycache__"]
[tool.uv.pip]
python-version = "3.11"
python-version = "3.14"
# compile-bytecode = true
[build-system]
@@ -250,7 +177,7 @@ package-dir = {"archivebox" = "archivebox"}
[tool.ruff]
line-length = 140
target-version = "py310"
target-version = "py314"
src = ["archivebox"]
exclude = ["*.pyi", "typings/", "migrations/"]
@@ -295,7 +222,7 @@ venv = ".venv"
# defineConstant = { DEBUG = true }
reportMissingImports = true
reportMissingTypeStubs = false
pythonVersion = "3.10"
pythonVersion = "3.14"
pythonPlatform = "Linux"