Skip to content

Commit 54ff57e

Browse files
authored
Fix --print_shtab not adding file completer for _ActionConfigLoad (#562)
1 parent f7aa49f commit 54ff57e

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

CHANGELOG.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ Fixed
2121
(`#559 <https://github.com/omni-us/jsonargparse/pull/559>`__).
2222
- ``List`` type incorrectly using defaults from previous item (`#560
2323
<https://github.com/omni-us/jsonargparse/pull/560>`__).
24+
- ``--print_shtab`` not adding file completer for ``_ActionConfigLoad`` (`#562
25+
<https://github.com/omni-us/jsonargparse/pull/562>`__).
2426

2527

2628
v4.32.0 (2024-07-19)

jsonargparse/_completions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from subprocess import PIPE, Popen
1313
from typing import List, Union
1414

15-
from ._actions import ActionConfigFile, _ActionHelpClassPath, remove_actions
15+
from ._actions import ActionConfigFile, _ActionConfigLoad, _ActionHelpClassPath, remove_actions
1616
from ._parameter_resolvers import get_signature_parameters
1717
from ._typehints import (
1818
ActionTypeHint,
@@ -142,7 +142,7 @@ def shtab_prepare_action(action, parser) -> None:
142142
return
143143

144144
complete = None
145-
if isinstance(action, ActionConfigFile):
145+
if isinstance(action, (ActionConfigFile, _ActionConfigLoad)):
146146
complete = shtab.FILE
147147
elif isinstance(action, ActionTypeHint):
148148
typehint = action._typehint

jsonargparse_tests/test_shtab.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,12 @@ def __init__(self, p1: int):
194194
pass
195195

196196

197+
def test_bash_class_config(parser):
198+
parser.add_class_arguments(Base, "class")
199+
shtab_script = get_shtab_script(parser, "bash")
200+
assert "_class_COMPGEN=_shtab_compgen_files" in shtab_script
201+
202+
197203
class SubA(Base):
198204
def __init__(self, p1: int, p2: AXEnum):
199205
pass

0 commit comments

Comments
 (0)