[project] name = "archivebox" version = "0.8.0" package-dir = "archivebox" requires-python = ">=3.10,<3.13" platform = "py3-none-any" description = "Self-hosted internet archiving solution." authors = [{name = "Nick Sweeting", email = "pyproject.toml@archivebox.io"}] license = {text = "MIT"} readme = "README.md" # pdm install # pdm update --unconstrained dependencies = [ # Last Bumped: 2024-04-25 # Base Framework and Language Dependencies "setuptools>=69.5.1", "django>=5.0.4,<6.0", "django-ninja>=1.1.0", "django-extensions>=3.2.3", "mypy-extensions>=1.0.0", # Python Helper Libraries "requests>=2.31.0", "dateparser>=1.0.0", "feedparser>=6.0.11", "w3lib>=2.1.2", # Feature-Specific Dependencies "python-crontab>=3.0.0", # for: archivebox schedule "croniter>=2.0.5", # for: archivebox schedule "ipython>=8.23.0", # for: archivebox shell # Extractor Dependencies "yt-dlp>=2024.4.9", # for: media # "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 # TODO: add more extractors # - gallery-dl # - scihubdl # - See Github issues for more... "django-signal-webhooks>=0.3.0", "django-admin-data-views>=0.3.1", ] 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"] 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", ] # dynamic = ["version"] # TODO: programatticaly fetch version from package.json at build time # pdm lock --group=':all' # pdm install -G:all # pdm update --group=':all' --unconstrained [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 "sonic-client>=1.0.0", ] ldap = [ # apt install libldap2-dev libsasl2-dev python3-ldap "python-ldap>=3.4.3", "django-auth-ldap>=4.1.0", ] # pdm lock --group=':all' --dev # pdm install -G:all --dev # pdm update --dev --unconstrained [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", ] test = [ "pytest", "bottle", ] lint = [ "flake8", "mypy", "django-stubs", ] [tool.pdm.scripts] lint = "./bin/lint.sh" test = "./bin/test.sh" # all = {composite = ["lint mypackage/", "test -v tests/"]} [build-system] requires = ["pdm-backend"] build-backend = "pdm.backend" [project.scripts] archivebox = "archivebox.cli:main" [tool.pytest.ini_options] testpaths = [ "tests" ] [tool.mypy] mypy_path = "archivebox" 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"] [tool.django-stubs] django_settings_module = "core.settings" [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"