2023-10-20 00:49:06 +00:00
[ project ]
name = "archivebox"
2024-09-06 09:59:14 +00:00
version = "0.8.3"
2024-04-24 00:43:01 +00:00
requires-python = ">=3.10,<3.13"
2024-09-06 09:59:14 +00:00
package-dir = "archivebox"
2024-04-24 00:43:01 +00:00
platform = "py3-none-any"
2023-10-20 00:49:06 +00:00
description = "Self-hosted internet archiving solution."
2024-04-24 00:43:01 +00:00
authors = [ { name = "Nick Sweeting" , email = "pyproject.toml@archivebox.io" } ]
2024-01-16 01:27:36 +00:00
license = { text = "MIT" }
readme = "README.md"
2024-04-24 00:43:01 +00:00
# pdm install
# pdm update --unconstrained
2023-10-20 00:49:06 +00:00
dependencies = [
2024-08-20 10:36:07 +00:00
# Last Bumped: 2024-08-20
2024-04-24 00:43:01 +00:00
# Base Framework and Language Dependencies
"setuptools>=69.5.1" ,
2024-04-25 11:19:16 +00:00
"django>=5.0.4,<6.0" ,
2024-04-24 21:32:07 +00:00
"django-ninja>=1.1.0" ,
2024-04-24 00:43:01 +00:00
"django-extensions>=3.2.3" ,
"mypy-extensions>=1.0.0" ,
# Python Helper Libraries
"requests>=2.31.0" ,
"dateparser>=1.0.0" ,
2024-02-25 20:34:51 +00:00
"feedparser>=6.0.11" ,
2024-04-25 11:19:16 +00:00
"w3lib>=2.1.2" ,
2024-09-06 09:59:14 +00:00
"rich>=13.8.0" ,
"ulid-py>=1.1.0" ,
"typeid-python>=0.3.0" ,
2024-04-24 00:43:01 +00:00
# Feature-Specific Dependencies
2024-04-25 11:19:16 +00:00
"python-crontab>=3.0.0" , # for: archivebox schedule
"croniter>=2.0.5" , # for: archivebox schedule
2024-04-26 04:38:15 +00:00
"ipython>=8.23.0" , # for: archivebox shell
2024-04-24 00:43:01 +00:00
# Extractor Dependencies
2024-08-23 09:01:02 +00:00
"yt-dlp>=2024.8.6" , # for: media
2024-04-26 04:38:15 +00:00
# "playwright>=1.43.0; platform_machine != 'armv7l'", # WARNING: playwright doesn't have any sdist, causes trouble on build systems that refuse to install wheel-only packages
2024-05-06 13:58:03 +00:00
"django-signal-webhooks>=0.3.0" ,
2024-05-06 18:06:42 +00:00
"django-admin-data-views>=0.3.1" ,
2024-09-06 09:59:14 +00:00
"django-object-actions>=4.2.0" ,
2024-05-13 09:37:48 +00:00
"django-charid-field>=0.4" ,
2024-05-18 03:13:54 +00:00
"django-pydantic-field>=0.3.9" ,
"django-jsonform>=2.22.0" ,
2024-06-03 08:13:17 +00:00
"django-stubs>=5.0.2" ,
2024-08-23 09:01:02 +00:00
# these can be safely omitted when installation subsystem does not provide these as packages (e.g. apt/debian)
# archivebox will automatically load fallback vendored copies bundled via archivebox/vendor/__init__.py
"pydantic-pkgr>=0.1.4" ,
"atomicwrites==1.4.0" ,
2024-08-27 03:24:25 +00:00
"pocket@git+https://github.com/tapanpandita/pocket.git@v0.3.7" ,
2024-08-23 09:01:02 +00:00
"django-taggit==1.3.0" ,
"base32-crockford==0.3.0" ,
2024-09-06 04:45:43 +00:00
"channels[daphne]>=4.1.0" ,
2023-10-20 00:49:06 +00:00
]
2024-02-19 03:15:40 +00:00
2024-04-24 00:43:01 +00:00
homepage = "https://github.com/ArchiveBox/ArchiveBox"
repository = "https://github.com/ArchiveBox/ArchiveBox"
documentation = "https://github.com/ArchiveBox/ArchiveBox/wiki"
keywords = [ "internet archiving" , "web archiving" , "digipres" , "warc" , "preservation" , "backups" , "archiving" , "web" , "bookmarks" , "puppeteer" , "browser" , "download" ]
2023-10-20 00:49:06 +00:00
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" ,
2023-12-18 01:55:35 +00:00
"Programming Language :: Python :: 3.10" ,
"Programming Language :: Python :: 3.11" ,
"Programming Language :: Python :: 3.12" ,
2023-10-20 00:49:06 +00:00
"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" ,
]
2024-04-24 00:43:01 +00:00
# dynamic = ["version"] # TODO: programatticaly fetch version from package.json at build time
2023-10-20 00:49:06 +00:00
2024-04-24 00:43:01 +00:00
# pdm lock --group=':all'
# pdm install -G:all
# pdm update --group=':all' --unconstrained
2024-01-16 01:27:36 +00:00
[ 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
2024-03-26 22:22:40 +00:00
# apt install sonic
2024-04-24 00:43:01 +00:00
"sonic-client>=1.0.0" ,
2024-01-16 01:27:36 +00:00
]
ldap = [
2024-02-19 03:15:40 +00:00
# apt install libldap2-dev libsasl2-dev python3-ldap
2024-01-16 01:27:36 +00:00
"python-ldap>=3.4.3" ,
"django-auth-ldap>=4.1.0" ,
]
2024-04-24 00:43:01 +00:00
# pdm lock --group=':all' --dev
2024-01-16 01:27:36 +00:00
# pdm install -G:all --dev
2024-04-24 00:43:01 +00:00
# pdm update --dev --unconstrained
[ build-system ]
requires = [ "pdm-backend" ]
build-backend = "pdm.backend"
[ project . scripts ]
archivebox = "archivebox.cli:main"
2024-09-06 04:44:18 +00:00
[ tool . ruff ]
line-length = 140
target-version = "py310"
src = [ "archivebox" ]
exclude = [ "*.pyi" , "typings/" , "migrations/" , "vendor/" ]
2024-09-06 08:48:18 +00:00
[ tool . ruff . lint ]
ignore = [ "E731" ]
2024-03-01 20:43:53 +00:00
[ tool . pytest . ini_options ]
testpaths = [ "tests" ]
2023-10-20 00:49:06 +00:00
2024-04-24 00:43:01 +00:00
[ tool . mypy ]
2024-08-21 01:32:12 +00:00
mypy_path = "archivebox,archivebox/typings"
2024-04-24 00:43:01 +00:00
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 = "pdm/(pep582/|models/in_process/.+\\.py)"
plugins = [ "mypy_django_plugin.main" ]
2023-10-20 00:49:06 +00:00
2024-05-01 04:43:51 +00:00
[ tool . django-stubs ]
django_settings_module = "core.settings"
2023-10-20 00:49:06 +00:00
2024-05-18 03:13:54 +00:00
[ tool . pyright ]
2024-08-21 01:32:12 +00:00
include = [
"archivebox" ,
]
exclude = [
".venv" ,
"**/*.pyi" ,
"**/__init__.pyi" ,
"**/node_modules" ,
2024-05-18 03:13:54 +00:00
"**/__pycache__" ,
"**/migrations" ,
"archivebox/vendor" ,
]
2024-08-28 07:26:25 +00:00
stubPath = "./archivebox/typings"
2024-08-21 01:32:12 +00:00
venvPath = "."
venv = ".venv"
2024-05-18 03:13:54 +00:00
# ignore = ["src/oldstuff"]
# defineConstant = { DEBUG = true }
reportMissingImports = true
reportMissingTypeStubs = false
pythonVersion = "3.10"
pythonPlatform = "Linux"
2023-10-20 00:49:06 +00:00
2024-08-21 01:32:12 +00:00
[ tool . pdm . dev-dependencies ]
build = [
# "pdm", # usually installed by apt/brew, dont double-install with pip
"setuptools>=69.5.1" ,
"pip" ,
"wheel" ,
"homebrew-pypi-poet>=0.10.0" , # for: generating archivebox.rb brewfile list of python packages
]
docs = [
"recommonmark" ,
"sphinx" ,
"sphinx-rtd-theme" ,
]
debug = [
"django-debug-toolbar" ,
"djdt_flamegraph" ,
"ipdb" ,
"requests-tracker>=0.3.3" ,
2024-08-27 03:17:36 +00:00
"logfire[django]>=0.51.0" ,
"opentelemetry-instrumentation-django>=0.47b0" ,
"opentelemetry-instrumentation-sqlite3>=0.47b0" ,
2024-08-21 01:32:12 +00:00
]
test = [
"pytest" ,
"bottle" ,
]
lint = [
"flake8" ,
"mypy" ,
"django-autotyping>=0.5.1" ,
]
[ tool . pdm . scripts ]
lint = "./bin/lint.sh"
test = "./bin/test.sh"
# all = {composite = ["lint mypackage/", "test -v tests/"]}
2023-10-20 00:49:06 +00:00
[ 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"