2022.6 #88
41
src/cpl_cli/_templates/generate/validator_template.py
Normal file
41
src/cpl_cli/_templates/generate/validator_template.py
Normal file
@ -0,0 +1,41 @@
|
||||
import textwrap
|
||||
from string import Template
|
||||
|
||||
from cpl_core.utils.string import String
|
||||
from cpl_cli._templates.template_file_abc import TemplateFileABC
|
||||
|
||||
|
||||
class ValidatorTemplate(TemplateFileABC):
|
||||
|
||||
def __init__(self, name: str, schematic: str, schematic_upper: str, path: str):
|
||||
TemplateFileABC.__init__(self)
|
||||
|
||||
self._name = f'{String.convert_to_snake_case(name)}_{schematic}.py'
|
||||
self._class_name = f'{String.first_to_upper(name)}{schematic_upper}'
|
||||
self._path = path
|
||||
self._value = textwrap.dedent("""\
|
||||
from cpl_core.configuration.validator_abc import ValidatorABC
|
||||
|
||||
|
||||
class $Name(ValidatorABC):
|
||||
|
||||
def __init__(self):
|
||||
ValidatorABC.__init__(self)
|
||||
|
||||
def validate(self) -> bool:
|
||||
return True
|
||||
""")
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def path(self) -> str:
|
||||
return self._path
|
||||
|
||||
@property
|
||||
def value(self) -> str:
|
||||
return Template(self._value).substitute(
|
||||
Name=self._class_name
|
||||
)
|
@ -2,6 +2,7 @@ import os
|
||||
import sys
|
||||
import textwrap
|
||||
|
||||
from cpl_cli._templates.generate.validator_template import ValidatorTemplate
|
||||
from cpl_core.configuration.configuration_abc import ConfigurationABC
|
||||
from cpl_core.console.foreground_color_enum import ForegroundColorEnum
|
||||
from cpl_core.console.console import Console
|
||||
@ -50,6 +51,10 @@ class GenerateService(CommandABC):
|
||||
"thread": {
|
||||
"Upper": "Thread",
|
||||
"Template": ThreadTemplate
|
||||
},
|
||||
"validator": {
|
||||
"Upper": "Validator",
|
||||
"Template": ValidatorTemplate
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,6 +78,7 @@ class GenerateService(CommandABC):
|
||||
service
|
||||
settings
|
||||
thread
|
||||
validator
|
||||
""")
|
||||
|
||||
@staticmethod
|
||||
@ -89,7 +95,9 @@ class GenerateService(CommandABC):
|
||||
'class (c|C)',
|
||||
'enum (e|E)',
|
||||
'service (s|S)',
|
||||
'settings (st|ST)'
|
||||
'settings (st|ST)',
|
||||
'thread (t|T)',
|
||||
'validator (v|V)'
|
||||
]
|
||||
Console.write_line('Available Schematics:')
|
||||
for name in schematics:
|
||||
|
@ -68,7 +68,8 @@ class StartupArgumentExtension(StartupExtensionABC):
|
||||
.add_console_argument(ArgumentTypeEnum.Variable, '', 'enum', ['e', 'E'], ' ') \
|
||||
.add_console_argument(ArgumentTypeEnum.Variable, '', 'service', ['s', 'S'], ' ') \
|
||||
.add_console_argument(ArgumentTypeEnum.Variable, '', 'settings', ['st', 'ST'], ' ') \
|
||||
.add_console_argument(ArgumentTypeEnum.Variable, '', 'thread', ['t', 't'], ' ')
|
||||
.add_console_argument(ArgumentTypeEnum.Variable, '', 'thread', ['t', 'T'], ' ') \
|
||||
.add_console_argument(ArgumentTypeEnum.Variable, '', 'validator', ['v', 'V'], ' ')
|
||||
config.create_console_argument(ArgumentTypeEnum.Executable, '', 'install', ['i', 'I'], InstallService, True) \
|
||||
.add_console_argument(ArgumentTypeEnum.Flag, '--', 'virtual', ['v', 'V']) \
|
||||
.add_console_argument(ArgumentTypeEnum.Flag, '--', 'simulate', ['s', 'S'])
|
||||
|
@ -287,6 +287,7 @@ class Configuration(ConfigurationABC):
|
||||
if prevent:
|
||||
continue
|
||||
|
||||
if exe.validators is not None:
|
||||
abort = False
|
||||
for validator_type in exe.validators:
|
||||
validator: ValidatorABC = services.get_service(validator_type)
|
||||
|
Loading…
Reference in New Issue
Block a user