mirror of
https://github.com/ArchiveBox/ArchiveBox
synced 2024-11-10 06:34:16 +00:00
208 lines
6.5 KiB
TOML
208 lines
6.5 KiB
TOML
[project]
|
|
name = "archivebox"
|
|
version = "0.8.2"
|
|
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-08-20
|
|
# 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.8.6", # 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
|
|
|
|
"django-signal-webhooks>=0.3.0",
|
|
"django-admin-data-views>=0.3.1",
|
|
"ulid-py>=1.1.0",
|
|
"typeid-python>=0.3.0",
|
|
"django-charid-field>=0.4",
|
|
"django-pydantic-field>=0.3.9",
|
|
"django-jsonform>=2.22.0",
|
|
"django-stubs>=5.0.2",
|
|
|
|
# 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",
|
|
"pocket@git+https://github.com/tapanpandita/pocket.git@v0.3.7",
|
|
"django-taggit==1.3.0",
|
|
"base32-crockford==0.3.0",
|
|
]
|
|
|
|
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
|
|
[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,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 = "pdm/(pep582/|models/in_process/.+\\.py)"
|
|
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",
|
|
"archivebox/vendor",
|
|
]
|
|
stubPath = "./archivebox/typings"
|
|
venvPath = "."
|
|
venv = ".venv"
|
|
# ignore = ["src/oldstuff"]
|
|
# defineConstant = { DEBUG = true }
|
|
reportMissingImports = true
|
|
reportMissingTypeStubs = false
|
|
pythonVersion = "3.10"
|
|
pythonPlatform = "Linux"
|
|
|
|
|
|
|
|
[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",
|
|
"logfire[django]>=0.51.0",
|
|
"opentelemetry-instrumentation-django>=0.47b0",
|
|
"opentelemetry-instrumentation-sqlite3>=0.47b0",
|
|
]
|
|
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/"]}
|
|
|
|
|
|
[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"
|
|
|
|
|