| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- __package__ = 'archivebox.plugantic'
- import sys
- import inspect
- import importlib
- from pathlib import Path
- from typing import Any, Optional, Dict, List
- from typing_extensions import Self
- from subprocess import run, PIPE
- from pydantic_pkgr import Binary, SemVer, BinName, BinProvider, EnvProvider, AptProvider, BrewProvider, PipProvider, BinProviderName, ProviderLookupDict
- import django
- from django.db.backends.sqlite3.base import Database as sqlite3
- def get_ytdlp_version() -> str:
- import yt_dlp
- return yt_dlp.version.__version__
- class YtdlpBinary(Binary):
- name: BinName = 'yt-dlp'
- providers_supported: List[BinProvider] = [
- EnvProvider(),
- PipProvider(),
- BrewProvider(),
- AptProvider(),
- ]
- provider_overrides: Dict[BinProviderName, ProviderLookupDict] = {
- 'pip': {
- 'version': get_ytdlp_version,
- },
- 'brew': {
- 'subdeps': lambda: 'yt-dlp ffmpeg',
- },
- 'apt': {
- 'subdeps': lambda: 'yt-dlp ffmpeg',
- }
- }
- class WgetBinary(Binary):
- name: BinName = 'wget'
- providers_supported: List[BinProvider] = [EnvProvider(), AptProvider(), BrewProvider()]
- # if __name__ == '__main__':
- # PYTHON_BINARY = PythonBinary()
- # SQLITE_BINARY = SqliteBinary()
- # DJANGO_BINARY = DjangoBinary()
- # WGET_BINARY = WgetBinary()
- # YTDLP_BINARY = YtdlpPBinary()
- # print('-------------------------------------DEFINING BINARIES---------------------------------')
- # print(PYTHON_BINARY)
- # print(SQLITE_BINARY)
- # print(DJANGO_BINARY)
- # print(WGET_BINARY)
- # print(YTDLP_BINARY)
|