|
13 | 13 | from typing import TYPE_CHECKING, Any, ClassVar, cast |
14 | 14 |
|
15 | 15 | from docutils import nodes, writers |
| 16 | +from roman_numerals import RomanNumeral |
16 | 17 |
|
17 | 18 | from sphinx import addnodes, highlighting |
18 | 19 | from sphinx.errors import SphinxError |
|
24 | 25 | from sphinx.util.template import LaTeXRenderer |
25 | 26 | from sphinx.util.texescape import tex_replace_map |
26 | 27 |
|
27 | | -try: |
28 | | - from docutils.utils.roman import toRoman |
29 | | -except ImportError: |
30 | | - # In Debian/Ubuntu, roman package is provided as roman, not as docutils.utils.roman |
31 | | - from roman import toRoman # type: ignore[no-redef, import-not-found] |
32 | | - |
33 | 28 | if TYPE_CHECKING: |
34 | 29 | from docutils.nodes import Element, Node, Text |
35 | 30 |
|
@@ -1421,8 +1416,9 @@ def get_nested_level(node: Element) -> int: |
1421 | 1416 | else: |
1422 | 1417 | return get_nested_level(node.parent) |
1423 | 1418 |
|
1424 | | - enum = 'enum%s' % toRoman(get_nested_level(node)).lower() |
1425 | | - enumnext = 'enum%s' % toRoman(get_nested_level(node) + 1).lower() |
| 1419 | + nested_level = get_nested_level(node) |
| 1420 | + enum = f'enum{RomanNumeral(nested_level).to_lowercase()}' |
| 1421 | + enumnext = f'enum{RomanNumeral(nested_level + 1).to_lowercase()}' |
1426 | 1422 | style = ENUMERATE_LIST_STYLE.get(get_enumtype(node)) |
1427 | 1423 | prefix = node.get('prefix', '') |
1428 | 1424 | suffix = node.get('suffix', '.') |
|
0 commit comments