mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-05 05:10:38 +08:00
update_settings_from_args refactor
This commit is contained in:
@ -1,4 +1,5 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
from typing import List
|
||||||
|
|
||||||
import difflib
|
import difflib
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -213,25 +214,42 @@ def load_large_diff(file, new_file_content_str: str, original_file_content_str:
|
|||||||
return patch
|
return patch
|
||||||
|
|
||||||
|
|
||||||
def update_settings_from_args(args):
|
def update_settings_from_args(args: List[str]) -> None:
|
||||||
if args and len(args) >= 1:
|
"""
|
||||||
|
Update the settings of the Dynaconf object based on the arguments passed to the function.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
args: A list of arguments passed to the function.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ValueError: If the argument is not in the correct format.
|
||||||
|
|
||||||
|
"""
|
||||||
|
if args:
|
||||||
for arg in args:
|
for arg in args:
|
||||||
try:
|
try:
|
||||||
arg = arg.strip('-').strip()
|
arg = arg.strip('-').strip()
|
||||||
vals = arg.replace('=', '.').replace('=', '.').split('.')
|
vals = arg.split('=')
|
||||||
|
if len(vals) != 2:
|
||||||
|
raise ValueError(f'Invalid argument format: {arg}')
|
||||||
|
key, value = vals
|
||||||
|
keys = key.split('.')
|
||||||
d = settings
|
d = settings
|
||||||
for i, v in enumerate(vals[:-1]):
|
for i, k in enumerate(keys[:-1]):
|
||||||
if i == len(vals) - 2:
|
if k not in d:
|
||||||
if v in d:
|
raise ValueError(f'Invalid setting: {key}')
|
||||||
if type(d[v]) == bool:
|
d = d[k]
|
||||||
d[v] = vals[-1].lower() in ("yes", "true", "t", "1")
|
if keys[-1] not in d:
|
||||||
else:
|
raise ValueError(f'Invalid setting: {key}')
|
||||||
d[v] = type(d[v])(vals[-1])
|
if isinstance(d[keys[-1]], bool):
|
||||||
logging.info(f'Updated setting {vals[:-1]} to: "{vals[-1]}"')
|
d[keys[-1]] = value.lower() in ("yes", "true", "t", "1")
|
||||||
break
|
else:
|
||||||
else:
|
d[keys[-1]] = type(d[keys[-1]])(value)
|
||||||
logging.error(f'Invalid setting {vals[:-1]}')
|
logging.info(f'Updated setting {key} to: "{value}"')
|
||||||
else:
|
except ValueError as e:
|
||||||
d = d[v]
|
logging.error(str(e))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f'Failed to parse argument {arg}: {e}')
|
logging.error(f'Failed to parse argument {arg}: {e}')
|
Reference in New Issue
Block a user