コード例 #1
0
    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)
コード例 #2
0
ファイル: impl.py プロジェクト: emilkarlen/exactly
    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)
コード例 #3
0
ファイル: actor.py プロジェクト: emilkarlen/exactly
    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)
        )
コード例 #4
0
    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)
コード例 #5
0
ファイル: new_file.py プロジェクト: emilkarlen/exactly
 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
コード例 #6
0
    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,
        ])
コード例 #7
0
 def __init__(self, string_matcher: StringMatcherSdv):
     super().__init__(
         sdv_validation.SdvValidatorFromDdvValidator(
             lambda symbols: string_matcher.resolve(symbols).validator))
     self._string_matcher = string_matcher
コード例 #8
0
ファイル: impl.py プロジェクト: emilkarlen/exactly
    def validator(self) -> SdvValidator:
        def get_validator(symbols: SymbolTable) -> DdvValidator:
            return self._modifier.resolve(symbols).validator()

        return sdv_validation.SdvValidatorFromDdvValidator(get_validator)
コード例 #9
0
ファイル: new_dir.py プロジェクト: emilkarlen/exactly
 def validator(self) -> SdvValidator:
     return sdv_validation.SdvValidatorFromDdvValidator(
         self._get_ddv_validator)
コード例 #10
0
 def validator(self) -> SdvValidator:
     return sdv_validation.SdvValidatorFromDdvValidator(
         lambda symbols: self._program.resolve(symbols).validator)