[i b]kiara[/b i] ia a data-orchestration framework; this is the command-line frontend for it.
For more information, visit the [i][b]kiara[/b] homepage[/i]: https://dharpa.org/kiara.documentation .
Source code in kiara/interfaces/cli/__init__.py
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 | @click.group(context_settings=CLICK_CONTEXT_SETTINGS)
@click.option(
"--config",
"-cnf",
help="A kiara config file (or folder containing one named 'kiara.config').",
required=False,
)
@click.option(
"--context",
"-ctx",
"-c",
help="The name of the kiara context to use (or the path to a context file).",
required=False,
)
@click.option(
"--pipelines",
"-p",
help="File(s) and folder(s) that contain extra pipeline definitions.",
multiple=True,
required=False,
)
@click.pass_context
def cli(
ctx, config: Union[str, None], context: Union[str, None], pipelines: Tuple[str]
):
"""[i b]kiara[/b i] ia a data-orchestration framework; this is the command-line frontend for it.
For more information, visit the [i][b]kiara[/b] homepage[/i]: https://dharpa.org/kiara.documentation .
"""
# check if windows symlink work
from kiara.utils.windows import check_symlink_works
if not check_symlink_works():
terminal_print()
terminal_print(Markdown(SYMLINK_ISSUE_MSG))
sys.exit(1)
ctx.obj = {}
# kiara_config: Optional[KiaraConfig] = None
exists = False
create = False
if config:
config_path = Path(config)
if config_path.exists():
if config_path.is_file():
config_file_path = config_path
exists = True
else:
config_file_path = config_path / KIARA_CONFIG_FILE_NAME
if config_file_path.exists():
exists = True
else:
config_file_path = Path(KIARA_MAIN_CONFIG_FILE)
if not config_file_path.exists():
create = True
exists = False
else:
exists = True
if not exists:
if not create:
terminal_print()
terminal_print(
f"Can't create kiara context, specified config file does not exist: {config}."
)
sys.exit(1)
kiara_config = KiaraConfig()
kiara_config.save(config_file_path)
else:
kiara_config = KiaraConfig.load_from_file(config_file_path)
ctx.obj["kiara_config"] = kiara_config
if not context:
context = os.environ.get("KIARA_CONTEXT", None)
if not context:
context = kiara_config.default_context
kiara = kiara_config.create_context(context=context, extra_pipelines=pipelines)
ctx.obj["kiara"] = kiara
ctx.obj["kiara_api"] = KiaraAPI(kiara=kiara)
ctx.obj["kiara_config"] = kiara_config
ctx.obj["kiara_context_name"] = context
|