This commit is contained in:
+21
-16
@@ -4,7 +4,7 @@
|
||||
|
||||
Каждый патч должен независеть от других патчей и проверять себя при применении. Он не должен вернуть True, если есть проблемы.
|
||||
На данный момент каждый патч должен иметь функцию `apply`, которая принимает на вход конфигурацию и возвращает True или False.
|
||||
И модель `Config`, которая наследуется от `PatchConfig` (поле `enabled` добавлять не нужно).
|
||||
И модель `Config`, которая наследуется от `PatchTemplate` (поле `enabled` добавлять не нужно).
|
||||
Это позволяет упростить конфигурирование и проверять типы данных, и делать значения по умолчанию.
|
||||
При успешном применении патча, функция apply должна вернуть True, иначе False.
|
||||
Ошибка будет интерпретирована как False. С выводом ошибки в консоль.
|
||||
@@ -25,24 +25,29 @@ python ./main.py build --verbose
|
||||
}
|
||||
"""
|
||||
|
||||
priority = 0 # Приоритет патча, чем выше, тем раньше он будет применен
|
||||
__author__ = "wowlikon <wowlikon@gmail.com>"
|
||||
__version__ = "1.0.0"
|
||||
from typing import Any, Dict, List
|
||||
|
||||
# imports
|
||||
from tqdm import tqdm
|
||||
from typing import Dict, List, Any
|
||||
from pydantic import Field
|
||||
from tqdm import tqdm
|
||||
|
||||
from utils.config import PatchConfig
|
||||
from utils.config import PatchTemplate
|
||||
|
||||
#Config
|
||||
class Config(PatchConfig):
|
||||
|
||||
class Patch(PatchTemplate):
|
||||
example: bool = Field(True, description="Пример кастомного параметра")
|
||||
|
||||
|
||||
# Patch
|
||||
def apply(config: Config, base: Dict[str, Any]) -> bool: # Анотации типов для удобства, читаемости и поддержки IDE
|
||||
tqdm.write("Вывод информации через tqdm, чтобы не мешать прогресс-бару")
|
||||
tqdm.write("Пример включен" if config.example else "Пример отключен")
|
||||
if base["verbose"]:
|
||||
tqdm.write("Для вывода подробной и отладочной информации используйте флаг --verbose")
|
||||
return True
|
||||
def apply(
|
||||
self, base: Dict[str, Any]
|
||||
) -> bool: # Анотации типов для удобства, читаемости и поддержки IDE
|
||||
priority: int = Field(
|
||||
frozen=True, exclude=True, default=0
|
||||
) # Приоритет патча, чем выше, тем раньше он будет применен
|
||||
tqdm.write("Вывод информации через tqdm, чтобы не мешать прогресс-бару")
|
||||
tqdm.write("Пример включен" if self.example else "Пример отключен")
|
||||
if base["verbose"]:
|
||||
tqdm.write(
|
||||
"Для вывода подробной и отладочной информации используйте флаг --verbose"
|
||||
)
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user