add ArchiveBox binary

This commit is contained in:
Nick Sweeting 2024-09-24 22:01:28 -07:00
parent 3dacec3f5b
commit de2ba890ea
No known key found for this signature in database

View file

@ -1,6 +1,7 @@
import os import os
import sys import sys
import inspect import inspect
import archivebox
from pathlib import Path from pathlib import Path
from typing import List, Dict, Optional, ClassVar from typing import List, Dict, Optional, ClassVar
from pydantic import InstanceOf, Field from pydantic import InstanceOf, Field
@ -74,6 +75,19 @@ LIB_PIP_BINPROVIDER = LibPipBinProvider()
pip = LIB_PIP_BINPROVIDER pip = LIB_PIP_BINPROVIDER
class ArchiveboxBinary(BaseBinary):
name: BinName = 'archivebox'
binproviders_supported: List[InstanceOf[BinProvider]] = [VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER, apt, brew, env]
provider_overrides: Dict[BinProviderName, ProviderLookupDict] = {
VENV_PIP_BINPROVIDER.name: {'packages': lambda: [], 'version': lambda: archivebox.__version__},
SYS_PIP_BINPROVIDER.name: {'packages': lambda: [], 'version': lambda: archivebox.__version__},
apt.name: {'packages': lambda: [], 'version': lambda: archivebox.__version__},
brew.name: {'packages': lambda: [], 'version': lambda: archivebox.__version__},
}
ARCHIVEBOX_BINARY = ArchiveboxBinary()
class PythonBinary(BaseBinary): class PythonBinary(BaseBinary):
name: BinName = 'python' name: BinName = 'python'
@ -187,6 +201,7 @@ class PipPlugin(BasePlugin):
VENV_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER,
LIB_PIP_BINPROVIDER, LIB_PIP_BINPROVIDER,
PIP_BINARY, PIP_BINARY,
ARCHIVEBOX_BINARY,
PYTHON_BINARY, PYTHON_BINARY,
SQLITE_BINARY, SQLITE_BINARY,
DJANGO_BINARY, DJANGO_BINARY,