예제 #1
0
 def create(
     cls, experiment_type: str, name: str, params: Optional[Dict[str, Any]]
 ) -> "Experiment[BaseInputParameters, BaseOutputData]":
     experiment_klass = ALL_EXPERIMENTS[experiment_type]
     # pyre-ignore[16]: experiment_klass has no __orig_bases__ attribute
     params_klass = get_args(experiment_klass.__orig_bases__[0])[0]
     params_signature = inspect.signature(params_klass)
     typed_args = ({
         key: params_signature.parameters[key].annotation(value)
         for key, value in params.items()
     } if params else {})
     params = params_klass(**typed_args)
     # pyre-ignore[45]: Cannot instantiate abstract class Experiment
     return experiment_klass(name, params)
예제 #2
0
파일: core.py 프로젝트: motte/labby
    def run(cls, trigger: str, argv: Sequence[str]) -> int:
        try:
            command_klass = ALL_COMMANDS[trigger]
            # pyre-ignore[16]: command_klass has no __orig_bases__ attribute
            args_klass = get_args(command_klass.__orig_bases__[0])[0]
            args = args_klass(prog=f"labby {trigger}").parse_args(argv)

            auto_discover_drivers()
            with open(args.config, "r") as config_file:
                config = Config(config_file.read())

            # pyre-ignore[45]: cannot instantiate Command with abstract method
            command = command_klass(config)
            return command.main(args)
        except pynng.exceptions.Timeout:
            # this had to be an inline import so the tests would use the
            # WASABI_LOG_FRIENDLY env variable correctly ¯\_(ツ)_/¯
            from wasabi import msg

            msg.fail("Timeout")
            msg.text("The labby server did not respond. Are you sure it is started?")
            return 1
예제 #3
0
 def get_output_data_type(cls) -> Type[BaseOutputData]:
     # pyre-ignore[16]: cls has no __orig_bases__ attribute
     return get_args(cls.__orig_bases__[0])[1]
예제 #4
0
 def get_response_type(cls) -> TResponse:
     # pyre-ignore[16]: pyre does not understand __orig_bases__
     return get_args(cls.__orig_bases__[0])[0]