fix Binary overrides getting wiped after init

This commit is contained in:
Nick Sweeting 2024-09-03 02:50:30 -07:00
parent a18857dbb9
commit 8d4ace017d
No known key found for this signature in database
3 changed files with 26 additions and 8 deletions

View file

@ -38,9 +38,15 @@ class FfmpegBinary(BaseBinary):
binproviders_supported: List[InstanceOf[BinProvider]] = [env, apt, brew]
provider_overrides: Dict[BinProviderName, ProviderLookupDict] = {
'env': {'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout},
'apt': {'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout},
'brew': {'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout},
'env': {
'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout,
},
'apt': {
'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout,
},
'brew': {
'version': lambda: run(['ffmpeg', '-version'], stdout=PIPE, stderr=PIPE, text=True).stdout,
},
}
# def get_ffmpeg_version(self) -> Optional[str]:

View file

@ -43,6 +43,7 @@ class BaseBinProvider(BinProvider):
class BaseBinary(Binary):
binproviders_supported: List[InstanceOf[BinProvider]] = Field(default_factory=list, alias='binproviders')
provider_overrides: Dict[BinProviderName, ProviderLookupDict] = Field(default_factory=dict, alias='overrides')
def register(self, settings, parent_plugin=None):
if settings is None:

View file

@ -103,7 +103,9 @@ def binaries_list_view(request: HttpRequest, **kwargs) -> TableContext:
if binary.name.lower().replace('-', '').replace('_', '').replace('ytdlp', 'youtubedl') in config_key.lower()
# or binary.name.lower().replace('-', '').replace('_', '') in str(config_value).lower()
)))
rows['Overrides'].append(str(obj_to_yaml(binary.provider_overrides))[:200])
# if not binary.provider_overrides:
# import ipdb; ipdb.set_trace()
rows['Overrides'].append(str(obj_to_yaml(binary.provider_overrides) or str(binary.provider_overrides))[:200])
# rows['Description'].append(binary.description)
return TableContext(
@ -161,11 +163,14 @@ def plugins_list_view(request: HttpRequest, **kwargs) -> TableContext:
rows = {
"Name": [],
"verbose_name": [],
"configs": [],
"binproviders": [],
"binaries": [],
"extractors": [],
"replayers": [],
"configs": [],
"verbose_name": [],
"checks": [],
"admindataviews": [],
}
@ -176,6 +181,11 @@ def plugins_list_view(request: HttpRequest, **kwargs) -> TableContext:
print(e)
rows['Name'].append(ItemLink(plugin.name, key=plugin.name))
rows['verbose_name'].append(str(plugin.verbose_name))
rows['binproviders'].append(mark_safe(', '.join(
f'<a href="/admin/environment/binproviders/{binprovider.name}/">{binprovider.name}</a>'
for binprovider in plugin.binproviders
)))
rows['binaries'].append(mark_safe(', '.join(
f'<a href="/admin/environment/binaries/{binary.name}/">{binary.name}</a>'
for binary in plugin.binaries
@ -188,7 +198,8 @@ def plugins_list_view(request: HttpRequest, **kwargs) -> TableContext:
for config_key in configset.__fields__.keys()
if config_key != 'section' and config_key in settings.CONFIG
)))
rows['verbose_name'].append(str(plugin.verbose_name))
rows['checks'].append(str(plugin.checks))
rows['admindataviews'].append(str(plugin.admindataviews))
return TableContext(
title="Installed plugins",
@ -224,7 +235,7 @@ def plugin_detail_view(request: HttpRequest, key: str, **kwargs) -> ItemContext:
'binaries': plugin.binaries,
'extractors': plugin.extractors,
'replayers': plugin.replayers,
'schema': obj_to_yaml(plugin.model_dump(include=('name', 'verbose_name', 'app_label', settings.PLUGIN_KEYS.keys()))),
'schema': obj_to_yaml(plugin.model_dump(include=('name', 'verbose_name', 'app_label', *settings.PLUGIN_KEYS.keys()))),
},
"help_texts": {
# TODO