add new pydantic_settings based loader for ConfigSets
Some checks failed
Build Debian package / build (push) Has been cancelled
Build Homebrew package / build (push) Has been cancelled
Build GitHub Pages website / build (push) Has been cancelled
Run linters / lint (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Build Docker image / buildx (push) Has been cancelled
Build Pip package / build (push) Has been cancelled
Run tests / python_tests (ubuntu-22.04, 3.11) (push) Has been cancelled
Run tests / docker_tests (push) Has been cancelled
Build GitHub Pages website / deploy (push) Has been cancelled

This commit is contained in:
Nick Sweeting 2024-09-22 19:30:24 -07:00
parent c8ff8f2b86
commit b6cfeb8d40
No known key found for this signature in database
8 changed files with 201 additions and 21 deletions

View file

@ -1,7 +1,6 @@
import platform
from pathlib import Path
from typing import List, Optional, Dict, Any
from typing_extensions import Self
from typing import List, Optional, Dict, ClassVar
from django.conf import settings
@ -79,7 +78,7 @@ def create_macos_app_symlink(target: Path, shortcut: Path):
class ChromeDependencyConfigs(BaseConfigSet):
section: ConfigSectionName = 'DEPENDENCY_CONFIG'
section: ClassVar[ConfigSectionName] = "DEPENDENCY_CONFIG"
CHROME_BINARY: str = Field(default='chrome')
CHROME_ARGS: Optional[List[str]] = Field(default=None)

View file

@ -2,7 +2,7 @@ import os
import sys
import inspect
from pathlib import Path
from typing import List, Dict, Optional
from typing import List, Dict, Optional, ClassVar
from pydantic import InstanceOf, Field
import django
@ -23,7 +23,7 @@ from plugantic.base_hook import BaseHook
class PipDependencyConfigs(BaseConfigSet):
section: ConfigSectionName = 'DEPENDENCY_CONFIG'
section: ClassVar[ConfigSectionName] = "DEPENDENCY_CONFIG"
USE_PIP: bool = True
PIP_BINARY: str = Field(default='pip')

View file

@ -1,7 +1,7 @@
__package__ = 'archivebox.builtin_plugins.singlefile'
from pathlib import Path
from typing import List, Dict, Optional
from typing import List, Dict, Optional, ClassVar
from typing_extensions import Self
from django.conf import settings
@ -25,13 +25,13 @@ from builtin_plugins.npm.apps import SYS_NPM_BINPROVIDER, LIB_NPM_BINPROVIDER
###################### Config ##########################
class SinglefileToggleConfigs(BaseConfigSet):
section: ConfigSectionName = 'ARCHIVE_METHOD_TOGGLES'
section: ClassVar[ConfigSectionName] = 'ARCHIVE_METHOD_TOGGLES'
SAVE_SINGLEFILE: bool = True
class SinglefileOptionsConfigs(BaseConfigSet):
section: ConfigSectionName = 'ARCHIVE_METHOD_OPTIONS'
section: ClassVar[ConfigSectionName] = 'ARCHIVE_METHOD_OPTIONS'
# loaded from shared config
SINGLEFILE_USER_AGENT: str = Field(default='', alias='USER_AGENT')
@ -42,7 +42,7 @@ class SinglefileOptionsConfigs(BaseConfigSet):
class SinglefileDependencyConfigs(BaseConfigSet):
section: ConfigSectionName = 'DEPENDENCY_CONFIG'
section: ClassVar[ConfigSectionName] = 'DEPENDENCY_CONFIG'
SINGLEFILE_BINARY: str = Field(default='wget')
SINGLEFILE_ARGS: Optional[List[str]] = Field(default=None)
@ -50,7 +50,7 @@ class SinglefileDependencyConfigs(BaseConfigSet):
SINGLEFILE_DEFAULT_ARGS: List[str] = ['--timeout={TIMEOUT-10}']
class SinglefileConfigs(SinglefileToggleConfigs, SinglefileOptionsConfigs, SinglefileDependencyConfigs):
# section: ConfigSectionName = 'ALL_CONFIGS'
# section: ClassVar[ConfigSectionName] = 'ALL_CONFIGS'
pass
DEFAULT_GLOBAL_CONFIG = {

View file

@ -1,4 +1,4 @@
from typing import List, Dict
from typing import List, Dict, ClassVar
from subprocess import run, PIPE
from pydantic import InstanceOf, Field
@ -16,7 +16,7 @@ from builtin_plugins.pip.apps import pip
class YtdlpDependencyConfigs(BaseConfigSet):
section: ConfigSectionName = 'DEPENDENCY_CONFIG'
section: ClassVar[ConfigSectionName] = "DEPENDENCY_CONFIG"
USE_YTDLP: bool = True