software/hoardy-web/./tool/pyproject.toml

Passively capture, archive, and hoard your web browsing history, including the contents of the pages you visit, for later offline viewing, replay, mirroring, data scraping, and/or indexing. Your own personal private Wayback Machine that can also archive HTTP POST requests and responses, as well as most other HTTP-level data.

Files

Raw Source

Contents

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
packages = ["hoardy_web"]
[project]
name = "hoardy-web"
version = "0.23.0"
authors = [{ name = "Jan Malakhovski", email = "oxij@oxij.org" }]
description = "Inspect, search, organize, programmatically extract values and generate static website mirrors from, archive, view, and replay `HTTP` archives/dumps in `WRR` (\"Web Request+Response\", produced by the `Hoardy-Web` Web Extension browser add-on) and `mitmproxy` (`mitmdump`) file formats."
readme = "README.md"
license = { text = "GPL-3.0-or-later" }
classifiers = [
    "Development Status :: 4 - Beta",
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
    "Intended Audience :: End Users/Desktop",
    "Topic :: Internet :: WWW/HTTP",
    "Topic :: Internet :: WWW/HTTP :: Indexing/Search",
    "Topic :: System :: Archiving",
    "Topic :: System :: Archiving :: Backup",
    "Topic :: System :: Archiving :: Mirroring",
    "Topic :: System :: Logging",
    "Topic :: Internet :: Log Analysis",
    "Operating System :: POSIX",
    "Environment :: Console",
]
keywords = [
    "HTTP", "HTTPS",
    "WWW", "web", "browser",
    "site", "website",
    "download", "archive", "mirror",
    "wayback", "wayback machine",
]
requires-python = ">=3.11"
dependencies = [
    "kisstdlib==0.0.9",
    "cbor2",
    "idna",
    "html5lib",
    "tinycss2>=1.3.0",
    "bottle",
]
[project.optional-dependencies]
mitmproxy = [
    "mitmproxy>=5.0",
]
[project.scripts]
hoardy-web= "hoardy_web.__main__:main"
wrrarms = "hoardy_web.__main__:main"
[project.urls]
"Homepage" = "https://oxij.org/software/hoardy-web/"
"GitHub" = "https://github.com/Own-Data-Privateer/hoardy-web"
"Support Development" = "https://oxij.org/#support"

[tool.mypy]
python_version = "3.11"
strict = true
implicit_reexport = true
explicit_package_bases = true
files = [
    "*.py",
    "*/**/*.py"
]
[[tool.mypy.overrides]]
module = [
    "setuptools",
    "cbor2",
    "cbor2.*",
    "html5lib.*",
    "tinycss2.*",
    "bottle",
    # optional
    "mitmproxy",
    "mitmproxy.*",
]
ignore_missing_imports = true

[tool.pytest.ini_options]
minversion = "6.0"
addopts = "-s -ra -v"
testpaths = [
    "hoardy_web/__main__.py"
]

[tool.black]
line-length = 100

[tool.pylint]
disable = [
    # `mypy` checks these more precisely
    "arguments-renamed",
    "inconsistent-return-statements",
    "no-member",
    "possibly-used-before-assignment",

    # `kisstdlib` uses this
    "raising-format-tuple",

    # annoying
    "dangerous-default-value",
    "global-statement",
    "import-outside-toplevel",
    "invalid-name",
    "line-too-long",
    "too-few-public-methods",
    "too-many-arguments",
    "too-many-boolean-expressions",
    "too-many-branches",
    "too-many-instance-attributes",
    "too-many-lines",
    "too-many-locals",
    "too-many-nested-blocks",
    "too-many-positional-arguments",
    "too-many-public-methods",
    "too-many-return-statements",
    "too-many-statements",

    # enable eventually
    "broad-exception-caught",
    "fixme",
    "missing-class-docstring",
    "missing-function-docstring",
    "unused-wildcard-import",
    "wildcard-import",
]
[tool.pylint.format]
max-line-length = "100"