| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- [project]
- name = "archivebox"
- version = "0.8.6rc0"
- requires-python = ">=3.10"
- description = "Self-hosted internet archiving solution."
- authors = [{name = "Nick Sweeting", email = "[email protected]"}]
- license = {text = "MIT"}
- readme = "README.md"
- keywords = ["internet archiving", "web archiving", "digipres", "warc", "preservation", "backups", "archiving", "web", "bookmarks", "puppeteer", "browser", "download"]
- classifiers = [
- "Development Status :: 4 - Beta",
- "Environment :: Console",
- "Environment :: Web Environment",
- "Framework :: Django",
- "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.10",
- "Programming Language :: Python :: 3.11",
- "Programming Language :: Python :: 3.12",
- "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 = [
- # ... archivebox/pkgs/* # see vendored libs here
- ############# Django / Core Libraries #############
- "setuptools>=74.1.0",
- "django>=5.1.1,<6.0",
- "django-ninja>=1.3.0",
- "django-extensions>=3.2.3",
- "mypy-extensions>=1.0.0",
- "typing_extensions>=4.12.2",
- "channels[daphne]>=4.1.0",
- "django-signal-webhooks>=0.3.0",
- "django-admin-data-views>=0.4.1",
- "django-object-actions>=4.3.0",
- "django-charid-field>=0.4",
- "django-pydantic-field>=0.3.10",
- "django-jsonform>=2.22.0",
- "django-stubs>=5.0.4",
- "django-huey>=1.2.1",
- "django-huey-monitor>=0.9.0",
- ############# Python Helper Libraries ############
- "pluggy>=1.5.0",
- "requests>=2.32.3",
- "dateparser>=1.2.0",
- "tzdata>=2024.2", # needed for dateparser {TZ: UTC} on some systems: https://github.com/ArchiveBox/ArchiveBox/issues/1553
- "feedparser>=6.0.11",
- "w3lib>=2.2.1",
- "rich>=13.8.0",
- "rich-argparse>=1.5.2",
- "ulid-py>=1.1.0",
- "typeid-python>=0.3.1",
- "psutil>=6.0.0",
- "supervisor>=4.2.5",
- "python-crontab>=3.2.0", # for: archivebox schedule
- "croniter>=3.0.3", # for: archivebox schedule
- "ipython>=8.27.0", # for: archivebox shell
- "py-machineid>=0.6.0", # for: machine/detect.py calculating machine guid
- "python-benedict[io,parse]>=0.33.2",
- "pydantic-settings>=2.5.2",
- "atomicwrites==1.4.1",
- "django-taggit==6.1.0",
- "base32-crockford==0.3.0",
- "platformdirs>=4.3.6",
- "pydantic-pkgr>=0.5.4",
- "pocket>=0.3.6",
- "sonic-client>=1.0.0",
- "yt-dlp>=2024.8.6", # for: media"
- ############# Plugin Dependencies ################
- "abx>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
- "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",
- "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",
- "python-statemachine>=2.3.6",
- ]
- [project.optional-dependencies]
- sonic = [
- # echo "deb [signed-by=/usr/share/keyrings/valeriansaliou_sonic.gpg] https://packagecloud.io/valeriansaliou/sonic/debian/ bookworm main" > /etc/apt/sources.list.d/valeriansaliou_sonic.list
- # curl -fsSL https://packagecloud.io/valeriansaliou/sonic/gpgkey | gpg --dearmor -o /usr/share/keyrings/valeriansaliou_sonic.gpg
- # apt install sonic
- # no-op, now included by default:
- # "sonic-client>=1.0.0",
- ]
- ldap = [
- # apt install libsasl2-dev python-dev-is-python3 libldap2-dev libssl-dev
- "python-ldap>=3.4.3",
- "django-auth-ldap>=4.1.0",
- ]
- debug = [
- # packages needed for running with DEBUG=True
- "django-debug-toolbar>=4.4.6",
- "djdt_flamegraph>=0.2.13",
- "ipdb>=0.13.13",
- "requests-tracker>=0.3.3",
- "django-autotyping>=0.5.1",
- ]
- all = [
- "archivebox[sonic,ldap,debug]"
- ]
- [tool.uv]
- dev-dependencies = [
- ### BUILD
- "uv>=0.4.26",
- "pip>=24.2",
- "setuptools>=75.1.0",
- "wheel>=0.44.0",
- "bumpver>=2023.1129",
- #"homebrew-pypi-poet>=0.10.0", # for: generating archivebox.rb brewfile list of python packages
- ### DOCS
- "recommonmark>=0.7.1",
- "sphinx>=8.1.3",
- "sphinx-rtd-theme>=2.0.0",
- "myst-parser>=4.0.0",
- "sphinx-autodoc2>=0.5.0",
- "linkify-it-py>=2.0.3",
- ### DEBUGGING
- "django-debug-toolbar>=4.4.6",
- "requests-tracker>=0.3.3",
- "djdt_flamegraph>=0.2.13",
- "ipdb>=0.13.13",
- "logfire[django]>=0.51.0",
- "opentelemetry-instrumentation-django>=0.47b0",
- "opentelemetry-instrumentation-sqlite3>=0.47b0",
- "viztracer>=0.17.0", # usage: viztracer ../.venv/bin/archivebox manage check
- # "snakeviz", # usage: python -m cProfile -o flamegraph.prof ../.venv/bin/archivebox manage check
- ### TESTING
- "pytest>=8.3.3",
- "bottle>=0.13.1",
- ### LINTING
- "ruff>=0.6.6",
- "flake8>=7.1.1",
- "mypy>=1.11.2",
- ]
- [tool.uv.sources]
- # pydantic-pkgr = { workspace = true }
- abx = { workspace = true }
- abx-spec-pydantic-pkgr = { 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__"]
- [build-system]
- requires = ["pdm-backend"]
- build-backend = "pdm.backend"
- # https://github.com/astral-sh/uv/issues/3957
- [tool.setuptools]
- packages = ["archivebox"]
- package-dir = {"archivebox" = "archivebox"}
- [tool.ruff]
- line-length = 140
- target-version = "py310"
- src = ["archivebox"]
- exclude = ["*.pyi", "typings/", "migrations/"]
- # https://docs.astral.sh/ruff/rules/
- [tool.ruff.lint]
- ignore = ["E731", "E303", "E266", "E241", "E222"]
- [tool.pytest.ini_options]
- testpaths = [ "tests" ]
- [tool.mypy]
- mypy_path = "archivebox,archivebox/typings"
- namespace_packages = true
- explicit_package_bases = true
- # follow_imports = "silent"
- # ignore_missing_imports = true
- # disallow_incomplete_defs = true
- # disallow_untyped_defs = true
- # disallow_untyped_decorators = true
- # exclude = "tests/.*"
- plugins = ["mypy_django_plugin.main"]
- [tool.django-stubs]
- django_settings_module = "core.settings"
- [tool.pyright]
- include = [
- "archivebox",
- ]
- exclude = [
- ".venv",
- "**/*.pyi",
- "**/__init__.pyi",
- "**/node_modules",
- "**/__pycache__",
- "**/migrations",
- ]
- stubPath = "./archivebox/typings"
- venvPath = "."
- venv = ".venv"
- # ignore = ["src/oldstuff"]
- # defineConstant = { DEBUG = true }
- reportMissingImports = true
- reportMissingTypeStubs = false
- pythonVersion = "3.10"
- pythonPlatform = "Linux"
- [project.scripts]
- archivebox = "archivebox.cli:main"
- [project.urls]
- Homepage = "https://github.com/ArchiveBox/ArchiveBox"
- Source = "https://github.com/ArchiveBox/ArchiveBox"
- Documentation = "https://github.com/ArchiveBox/ArchiveBox/wiki"
- "Bug Tracker" = "https://github.com/ArchiveBox/ArchiveBox/issues"
- Changelog = "https://github.com/ArchiveBox/ArchiveBox/releases"
- Roadmap = "https://github.com/ArchiveBox/ArchiveBox/wiki/Roadmap"
- Community = "https://github.com/ArchiveBox/ArchiveBox/wiki/Web-Archiving-Community"
- Demo = "https://demo.archivebox.io"
- Donate = "https://github.com/ArchiveBox/ArchiveBox/wiki/Donations"
- [tool.bumpver]
- current_version = "v0.8.5rc53"
- version_pattern = "vMAJOR.MINOR.PATCH[PYTAGNUM]"
- commit_message = "bump version {old_version} -> {new_version}"
- tag_message = "{new_version}"
- tag_scope = "default"
- pre_commit_hook = ""
- post_commit_hook = ""
- commit = true
- tag = true
- push = true
- [tool.bumpver.file_patterns]
- "pyproject.toml" = [
- 'current_version = "{version}"',
- 'version = "{pep440_version}"',
- ]
|