Skip to content

Commit 932d2d3

Browse files
authored
Don't warn on case sensitive command options labels (#34)
1 parent f74d923 commit 932d2d3

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## 1.8.2
6+
7+
- Don't raise label clashing warnings for options which only differ between upper and lower case
8+
59
## 1.8.1
610

711
- Fix reference clashing for options which only differ between upper and lower case

src/sphinx_argparse_cli/_logic.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
section,
3131
strong,
3232
title,
33+
whitespace_normalize_name,
3334
)
3435
from docutils.parsers.rst.directives import ( # type: ignore # no stubs
3536
positive_int,
@@ -229,15 +230,16 @@ def _mk_option_name(self, line: paragraph, prefix: str, opt: str) -> None:
229230
st = strong()
230231
st += literal(text=opt)
231232
ref += st
232-
self._register_ref(ref_id, ref_title, ref)
233+
self._register_ref(ref_id, ref_title, ref, is_cli_option=True)
233234
line += ref
234235

235-
def _register_ref(self, ref_name: str, ref_title: str, node: Element) -> None:
236+
def _register_ref(self, ref_name: str, ref_title: str, node: Element, is_cli_option: bool = False) -> None:
236237
doc_name = self.env.docname
238+
normalize_name = whitespace_normalize_name if is_cli_option else fully_normalize_name
237239
if self.env.config.sphinx_argparse_cli_prefix_document:
238-
name = fully_normalize_name(f"{doc_name}:{ref_name}")
240+
name = normalize_name(f"{doc_name}:{ref_name}")
239241
else:
240-
name = fully_normalize_name(ref_name)
242+
name = normalize_name(ref_name)
241243
if name in self._std_domain.labels:
242244
logger.warning(
243245
__("duplicate label %s, other instance in %s"),

tests/test_logic.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ def test_store_true_false(build_outcome: str) -> None:
210210

211211

212212
@pytest.mark.sphinx(buildername="html", testroot="lower-upper-refs")
213-
def test_lower_upper_refs(build_outcome: str) -> None:
213+
def test_lower_upper_refs(build_outcome: str, warning: StringIO) -> None:
214214
assert '<p id="basic--d"><a class="reference internal" href="#basic--d" title="basic -d">' in build_outcome
215215
assert '<p id="basic--D"><a class="reference internal" href="#basic--D" title="basic -D">' in build_outcome
216+
assert not warning.getvalue()

0 commit comments

Comments
 (0)