def parse(self, instructions: Sequence[ActPhaseInstruction]) -> ActionToCheck: info = _Parsing(instructions).parse() symbol_usages = tuple(self._interpreter.references) + tuple( info.symbol_usages()) def make_command(environment: FullResolvingEnvironment) -> Command: interpreter_command = (self._interpreter.resolve( environment.symbols).value_of_any_dependency(environment.tcds)) source_file_path = info.path.resolve( environment.symbols).value_of_any_dependency(environment.tcds) arguments = [] arguments += interpreter_command.arguments arguments.append(str(source_file_path)) arguments += info.arguments.resolve( environment.symbols).value_of_any_dependency(environment.tcds) return Command(interpreter_command.driver, arguments) def get_interpreter_and_args_validator( symbols: SymbolTable) -> DdvValidator: return ddv_validators.all_of( tuple(self._interpreter.resolve(symbols).validators) + tuple(info.arguments.resolve(symbols).validators)) interpreter_and_args_validator = sdv_validation.SdvValidatorFromDdvValidator( get_interpreter_and_args_validator) return _ActionToCheck(symbol_usages, interpreter_and_args_validator, info.path, make_command)
def validator(self) -> SdvValidator: if self._value is None: return ConstantSuccessSdvValidator() def get_validator(symbols: SymbolTable) -> DdvValidator: return self._value.resolve(symbols).validator() return sdv_validation.SdvValidatorFromDdvValidator(get_validator)
def construct(self, environment: InstructionEnvironmentForPreSdsStep, executable_object: pa.InterpreterAndSourceInfo, ) -> parts.Validator: def get_validator(symbols: SymbolTable) -> DdvValidator: return ddv_validators.all_of(executable_object.interpreter.resolve(symbols).validators) return parts.ValidatorWithHardErrorFromPostSdsValidation( sdv_validation.SdvValidatorFromDdvValidator(get_validator) )
def __init__(self, source_path: PathSdv): self.source_path = source_path def get_ddv_validator(symbols: SymbolTable) -> DdvValidator: return path_check.PathCheckDdvValidator( path_check.PathCheckDdv(self.source_path.resolve(symbols), file_properties.must_exist()) ) self._validator = sdv_validation.SdvValidatorFromDdvValidator(get_ddv_validator)
def __init__( self, path_to_create: PathSdv, file_maker: _file_maker.FileMakerSdv, ): self._path_to_create = path_to_create self._validator = sdv_validation.all_of([ _DstFileNameSdvValidator(path_to_create), sdv_validation.SdvValidatorFromDdvValidator( self._get_file_maker_validator), ]) self._file_maker = file_maker
def __init__( self, model_constructor: FullDepsWithDetailsDescriptionSdv[ ModelConstructor[FilesMatcherModel]], files_matcher: FilesMatcherSdv, ): def get_ddv_validator(symbols: SymbolTable) -> DdvValidator: return ddv_validators.all_of([ model_constructor.resolve(symbols).validator, files_matcher.resolve(symbols).validator, ]) super().__init__( sdv_validation.SdvValidatorFromDdvValidator(get_ddv_validator)) self._model_constructor = model_constructor self._files_matcher = files_matcher self._references = references_from_objects_with_symbol_references([ model_constructor, files_matcher, ])
def __init__(self, string_matcher: StringMatcherSdv): super().__init__( sdv_validation.SdvValidatorFromDdvValidator( lambda symbols: string_matcher.resolve(symbols).validator)) self._string_matcher = string_matcher
def validator(self) -> SdvValidator: def get_validator(symbols: SymbolTable) -> DdvValidator: return self._modifier.resolve(symbols).validator() return sdv_validation.SdvValidatorFromDdvValidator(get_validator)
def validator(self) -> SdvValidator: return sdv_validation.SdvValidatorFromDdvValidator( self._get_ddv_validator)
def validator(self) -> SdvValidator: return sdv_validation.SdvValidatorFromDdvValidator( lambda symbols: self._program.resolve(symbols).validator)