Exemple #1
0
def _get_code_pointer_dict_from_kwargs(kwargs):
    python_file = kwargs.get("python_file")
    module_name = kwargs.get("module_name")
    working_directory = get_working_directory_from_kwargs(kwargs)
    attribute = kwargs.get("attribute")
    loadable_targets = get_loadable_targets(python_file, module_name,
                                            working_directory, attribute)
    if python_file:
        return {
            repository_def_from_target_def(
                loadable_target.target_definition).name:
            CodePointer.from_python_file(python_file,
                                         loadable_target.attribute,
                                         working_directory)
            for loadable_target in loadable_targets
        }
    elif module_name:
        return {
            repository_def_from_target_def(
                loadable_target.target_definition).name:
            CodePointer.from_module(module_name, loadable_target.attribute)
            for loadable_target in loadable_targets
        }
    else:
        check.failed("invalid")
Exemple #2
0
def _get_code_pointer_dict_from_kwargs(kwargs):
    python_file = kwargs.get("python_file")
    module_name = kwargs.get("module_name")
    working_directory = get_working_directory_from_kwargs(kwargs)
    attribute = kwargs.get("attribute")
    if python_file:
        _check_cli_arguments_none(kwargs, "module_name")
        return {
            repository_def_from_target_def(
                loadable_target.target_definition).name:
            CodePointer.from_python_file(python_file,
                                         loadable_target.attribute,
                                         working_directory)
            for loadable_target in get_loadable_targets(
                python_file, module_name, working_directory, attribute)
        }
    elif module_name:
        _check_cli_arguments_none(kwargs, "python_file", "working_directory")
        return {
            repository_def_from_target_def(
                loadable_target.target_definition).name:
            CodePointer.from_module(module_name, loadable_target.attribute)
            for loadable_target in get_loadable_targets(
                python_file, module_name, working_directory, attribute)
        }
    else:
        check.failed("Must specify a Python file or module name")
Exemple #3
0
    def __init__(self, shutdown_server_event, loadable_target_origin=None):
        super(DagsterApiServer, self).__init__()

        self._shutdown_server_event = check.inst_param(
            shutdown_server_event, 'shutdown_server_event',
            seven.ThreadingEventType)
        self._loadable_target_origin = check.opt_inst_param(
            loadable_target_origin, 'loadable_target_origin',
            LoadableTargetOrigin)

        if loadable_target_origin:
            loadable_targets = get_loadable_targets(
                loadable_target_origin.python_file,
                loadable_target_origin.module_name,
                loadable_target_origin.working_directory,
                loadable_target_origin.attribute,
            )
            self._loadable_repository_symbols = [
                LoadableRepositorySymbol(
                    attribute=loadable_target.attribute,
                    repository_name=repository_def_from_target_def(
                        loadable_target.target_definition).name,
                ) for loadable_target in loadable_targets
            ]
        else:
            self._loadable_repository_symbols = []

        self._shutdown_server_event = check.inst_param(
            shutdown_server_event, 'shutdown_server_event',
            seven.ThreadingEventType)
        # Dict[str, multiprocessing.Process] of run_id to execute_run process
        self._executions = {}
        # Dict[str, multiprocessing.Event]
        self._termination_events = {}
        self._execution_lock = threading.Lock()

        self._repository_code_pointer_dict = {}
        for loadable_repository_symbol in self._loadable_repository_symbols:
            if self._loadable_target_origin.python_file:
                self._repository_code_pointer_dict[
                    loadable_repository_symbol.
                    repository_name] = CodePointer.from_python_file(
                        self._loadable_target_origin.python_file,
                        loadable_repository_symbol.attribute,
                        self._loadable_target_origin.working_directory,
                    )
            if self._loadable_target_origin.module_name:
                self._repository_code_pointer_dict[
                    loadable_repository_symbol.
                    repository_name] = CodePointer.from_module(
                        self._loadable_target_origin.module_name,
                        loadable_repository_symbol.attribute,
                    )
Exemple #4
0
def load_loadable_repository_symbols(loadable_target_origin):
    if loadable_target_origin:
        loadable_targets = get_loadable_targets(
            loadable_target_origin.python_file,
            loadable_target_origin.module_name,
            loadable_target_origin.working_directory,
            loadable_target_origin.attribute,
        )
        return [
            LoadableRepositorySymbol(
                attribute=loadable_target.attribute,
                repository_name=repository_def_from_target_def(
                    loadable_target.target_definition).name,
            ) for loadable_target in loadable_targets
        ]
    else:
        return []
Exemple #5
0
def list_repositories_command(args):
    check.inst_param(args, 'args', ListRepositoriesInput)
    python_file, module_name, working_directory, attribute = (
        args.python_file,
        args.module_name,
        args.working_directory,
        args.attribute,
    )
    loadable_targets = get_loadable_targets(python_file, module_name,
                                            working_directory, attribute)
    return ListRepositoriesResponse([
        LoadableRepositorySymbol(
            attribute=lt.attribute,
            repository_name=repository_def_from_target_def(
                lt.target_definition).name,
        ) for lt in loadable_targets
    ])
Exemple #6
0
def list_repositories_command(args):
    check.inst_param(args, "args", ListRepositoriesInput)
    python_file, module_name, working_directory, attribute = (
        args.python_file,
        args.module_name,
        args.working_directory,
        args.attribute,
    )
    try:
        loadable_targets = get_loadable_targets(python_file, module_name,
                                                working_directory, attribute)
        return ListRepositoriesResponse([
            LoadableRepositorySymbol(
                attribute=lt.attribute,
                repository_name=repository_def_from_target_def(
                    lt.target_definition).name,
            ) for lt in loadable_targets
        ])
    except Exception:  # pylint: disable=broad-except
        return serializable_error_info_from_exc_info(sys.exc_info())