Skip to content

Commit cf478a7

Browse files
authored
pytask collect displays shortened task names. (#289)
1 parent 3d11837 commit cf478a7

File tree

3 files changed

+33
-2
lines changed

3 files changed

+33
-2
lines changed

docs/source/changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ releases are available on [PyPI](https://pypi.org/project/pytask) and
88
## 0.2.5 - 2022-xx-xx
99

1010
- {pull}`288` fixes pinning pybaum to v0.1.1 or a version that supports `tree_yield()`.
11+
- {pull}`289` shortens the task ids when using `pytask collect`. Fixes {issue}`286`.
1112

1213
## 0.2.4 - 2022-06-28
1314

src/_pytask/collect_command.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,10 @@ def _print_collected_tasks(
190190

191191
for task in tasks:
192192
reduced_task_name = format_task_id(
193-
task, editor_url_scheme=editor_url_scheme, relative_to=common_ancestor
193+
task,
194+
editor_url_scheme=editor_url_scheme,
195+
short_name=True,
196+
relative_to=common_ancestor,
194197
)
195198
task_branch = module_branch.add(
196199
Text.assemble(TASK_ICON, "<Function ", reduced_task_name, ">"),

tests/test_collect_command.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from _pytask.collect_command import _find_common_ancestor_of_all_nodes
99
from _pytask.collect_command import _print_collected_tasks
1010
from pytask import cli
11+
from pytask import ExitCode
1112
from pytask import MetaNode
1213
from pytask import Task
1314

@@ -27,6 +28,7 @@ def task_example():
2728

2829
result = runner.invoke(cli, ["collect", tmp_path.as_posix()])
2930

31+
assert result.exit_code == ExitCode.OK
3032
captured = result.output.replace("\n", "").replace(" ", "")
3133
assert "<Module" in captured
3234
assert "task_module.py>" in captured
@@ -35,6 +37,7 @@ def task_example():
3537

3638
result = runner.invoke(cli, ["collect", tmp_path.as_posix(), "--nodes"])
3739

40+
assert result.exit_code == ExitCode.OK
3841
captured = result.output.replace("\n", "").replace(" ", "")
3942
assert "<Module" in captured
4043
assert "task_module.py>" in captured
@@ -61,6 +64,7 @@ def task_example(arg):
6164

6265
result = runner.invoke(cli, ["collect", tmp_path.as_posix()])
6366

67+
assert result.exit_code == ExitCode.OK
6468
captured = result.output.replace("\n", "").replace(" ", "").replace("\u2502", "")
6569
assert "<Module" in captured
6670
assert "task_module.py>" in captured
@@ -90,6 +94,7 @@ def task_example_2():
9094

9195
result = runner.invoke(cli, ["collect", tmp_path.as_posix(), "-k", "_1"])
9296

97+
assert result.exit_code == ExitCode.OK
9398
captured = result.output.replace("\n", "").replace(" ", "")
9499
assert "<Module" in captured
95100
assert "task_module.py>" in captured
@@ -100,6 +105,7 @@ def task_example_2():
100105

101106
result = runner.invoke(cli, ["collect", tmp_path.as_posix(), "-k", "_1", "--nodes"])
102107

108+
assert result.exit_code == ExitCode.OK
103109
captured = result.output.replace("\n", "").replace(" ", "")
104110
assert "<Module" in captured
105111
assert "task_module.py>" in captured
@@ -140,6 +146,7 @@ def task_example_2():
140146

141147
result = runner.invoke(cli, ["collect", tmp_path.as_posix(), "-m", "wip"])
142148

149+
assert result.exit_code == ExitCode.OK
143150
captured = result.output.replace("\n", "").replace(" ", "")
144151
assert "<Module" in captured
145152
assert "task_module.py>" in captured
@@ -152,6 +159,7 @@ def task_example_2():
152159
cli, ["collect", tmp_path.as_posix(), "-m", "wip", "--nodes"]
153160
)
154161

162+
assert result.exit_code == ExitCode.OK
155163
captured = result.output.replace("\n", "").replace(" ", "")
156164
assert "<Module" in captured
157165
assert "task_module.py>" in captured
@@ -190,6 +198,7 @@ def task_example_2():
190198

191199
result = runner.invoke(cli, ["collect", tmp_path.as_posix(), "-m", "wip"])
192200

201+
assert result.exit_code == ExitCode.OK
193202
captured = result.output.replace("\n", "").replace(" ", "")
194203
assert "<Module" in captured
195204
assert "task_module.py>" in captured
@@ -202,6 +211,7 @@ def task_example_2():
202211
cli, ["collect", tmp_path.as_posix(), "-m", "wip", "--nodes"]
203212
)
204213

214+
assert result.exit_code == ExitCode.OK
205215
captured = result.output.replace("\n", "").replace(" ", "")
206216
assert "<Module" in captured
207217
assert "task_module.py>" in captured
@@ -243,6 +253,7 @@ def task_example_2():
243253

244254
result = runner.invoke(cli, ["collect", tmp_path.as_posix()])
245255

256+
assert result.exit_code == ExitCode.OK
246257
captured = result.output.replace("\n", "").replace(" ", "")
247258
assert "<Module" in captured
248259
assert "task_example_1.py>" in captured
@@ -254,6 +265,7 @@ def task_example_2():
254265

255266
result = runner.invoke(cli, ["collect", tmp_path.as_posix(), "--nodes"])
256267

268+
assert result.exit_code == ExitCode.OK
257269
captured = result.output.replace("\n", "").replace(" ", "")
258270
assert "<Module" in captured
259271
assert "task_example_1.py>" in captured
@@ -295,6 +307,7 @@ def task_example_2():
295307

296308
result = runner.invoke(cli, ["collect", tmp_path.as_posix()])
297309

310+
assert result.exit_code == ExitCode.OK
298311
captured = result.output.replace("\n", "").replace(" ", "")
299312
assert "<Module" in captured
300313
assert "task_example_1.py>" in captured
@@ -306,6 +319,7 @@ def task_example_2():
306319

307320
result = runner.invoke(cli, ["collect", tmp_path.as_posix(), "--nodes"])
308321

322+
assert result.exit_code == ExitCode.OK
309323
captured = result.output.replace("\n", "").replace(" ", "")
310324
assert "<Module" in captured
311325
assert "task_example_1.py>" in captured
@@ -343,6 +357,7 @@ def task_example_2():
343357
cli, ["collect", tmp_path.as_posix(), "--ignore", "task_example_2.py"]
344358
)
345359

360+
assert result.exit_code == ExitCode.OK
346361
captured = result.output.replace("\n", "").replace(" ", "")
347362
assert "<Module" in captured
348363
assert "task_example_1.py>" in captured
@@ -357,6 +372,7 @@ def task_example_2():
357372
["collect", tmp_path.as_posix(), "--ignore", "task_example_2.py", "--nodes"],
358373
)
359374

375+
assert result.exit_code == ExitCode.OK
360376
captured = result.output.replace("\n", "").replace(" ", "")
361377
assert "<Module" in captured
362378
assert "task_example_1.py>" in captured
@@ -398,7 +414,6 @@ def test_print_collected_tasks_without_nodes(capsys):
398414
_print_collected_tasks(dictionary, False, "file", Path())
399415

400416
captured = capsys.readouterr().out
401-
402417
assert "<Module task_path.py>" in captured
403418
assert "<Function task_path.py::function>" in captured
404419
assert "<Dependency in.txt>" not in captured
@@ -444,3 +459,15 @@ def test_find_common_ancestor_of_all_nodes(show_nodes, expected_add):
444459

445460
result = _find_common_ancestor_of_all_nodes(tasks, [Path.cwd() / "src"], show_nodes)
446461
assert result == Path.cwd().joinpath(expected_add).resolve()
462+
463+
464+
@pytest.mark.end_to_end
465+
def test_task_name_is_shortened(runner, tmp_path):
466+
tmp_path.joinpath("a", "b").mkdir(parents=True)
467+
tmp_path.joinpath("a", "b", "task_example.py").write_text("def task_example(): ...")
468+
469+
result = runner.invoke(cli, ["collect", tmp_path.as_posix()])
470+
471+
assert result.exit_code == ExitCode.OK
472+
assert "task_example.py::task_example" in result.output
473+
assert "a/b/task_example.py::task_example" not in result.output

0 commit comments

Comments
 (0)