diff --git a/CHANGES.rst b/CHANGES.rst index 0e98011..38427f1 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -8,6 +8,8 @@ Changes in sphinx-automodapi - Minimum supported Python version is now 3.8. [#177] +- Fixed issue with non-ascii characters in object names. [#184] + 0.16.0 (2023-08-17) ------------------- diff --git a/sphinx_automodapi/automodsumm.py b/sphinx_automodapi/automodsumm.py index b927a16..323c184 100644 --- a/sphinx_automodapi/automodsumm.py +++ b/sphinx_automodapi/automodsumm.py @@ -291,7 +291,7 @@ def process_automodsumm_generation(app): if app.config.automodsumm_writereprocessed: if lines: # empty list means no automodsumm entry is in the file outfn = os.path.join(app.srcdir, sfn) + '.automodsumm' - with open(outfn, 'w') as f: + with open(outfn, 'w', encoding='utf8') as f: for l in lines: # noqa: E741 f.write(l) f.write('\n') diff --git a/sphinx_automodapi/tests/cases/non_ascii/output/api/sphinx_automodapi.tests.example_module.nonascii.NonAscii.rst "b/sphinx_automodapi/tests/cases/non_ascii/output/api/sphinx_automodapi.tests.example_module.nonascii.NonAscii\303\204\303\266\303\274\303\237\305\221.rst" similarity index 63% rename from sphinx_automodapi/tests/cases/non_ascii/output/api/sphinx_automodapi.tests.example_module.nonascii.NonAscii.rst rename to "sphinx_automodapi/tests/cases/non_ascii/output/api/sphinx_automodapi.tests.example_module.nonascii.NonAscii\303\204\303\266\303\274\303\237\305\221.rst" index 1ea0c55..caab61b 100644 --- a/sphinx_automodapi/tests/cases/non_ascii/output/api/sphinx_automodapi.tests.example_module.nonascii.NonAscii.rst +++ "b/sphinx_automodapi/tests/cases/non_ascii/output/api/sphinx_automodapi.tests.example_module.nonascii.NonAscii\303\204\303\266\303\274\303\237\305\221.rst" @@ -1,17 +1,17 @@ -NonAscii -======== +NonAsciiÄöüßő +============= .. currentmodule:: sphinx_automodapi.tests.example_module.nonascii -.. autoclass:: NonAscii +.. autoclass:: NonAsciiÄöüßő :show-inheritance: .. rubric:: Methods Summary .. autosummary:: - ~NonAscii.get_ß - ~NonAscii.get_äöü + ~NonAsciiÄöüßő.get_ß + ~NonAsciiÄöüßő.get_äöü .. rubric:: Methods Documentation diff --git a/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodsumm b/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodsumm index fb4ef02..1d99fca 100644 --- a/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodsumm +++ b/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodsumm @@ -11,5 +11,5 @@ .. autosummary:: :toctree: api - NonAscii + NonAsciiÄöüßő diff --git a/sphinx_automodapi/tests/example_module/nonascii.py b/sphinx_automodapi/tests/example_module/nonascii.py index ccded8e..4928b78 100644 --- a/sphinx_automodapi/tests/example_module/nonascii.py +++ b/sphinx_automodapi/tests/example_module/nonascii.py @@ -1,7 +1,7 @@ -__all__ = ['NonAscii'] +__all__ = ['NonAsciiÄöüßő'] -class NonAscii(object): +class NonAsciiÄöüßő(object): def get_äöü(self): """ Return a string with common umlauts like äöüß diff --git a/sphinx_automodapi/utils.py b/sphinx_automodapi/utils.py index 57c68cd..6934124 100644 --- a/sphinx_automodapi/utils.py +++ b/sphinx_automodapi/utils.py @@ -125,10 +125,10 @@ def find_autosummary_in_lines_for_automodsumm(lines, module=None, filename=None) """ autosummary_re = re.compile(r'^(\s*)\.\.\s+autosummary::\s*') automodule_re = re.compile( - r'^\s*\.\.\s+automodule::\s*([A-Za-z0-9_.]+)\s*$') + r'^\s*\.\.\s+automodule::\s*([A-Za-zäüöÄÜÖßő0-9_.]+)\s*$') module_re = re.compile( - r'^\s*\.\.\s+(current)?module::\s*([a-zA-Z0-9_.]+)\s*$') - autosummary_item_re = re.compile(r'^\s+(~?[_a-zA-Z][a-zA-Z0-9_.]*)\s*.*?') + r'^\s*\.\.\s+(current)?module::\s*([a-zA-ZäüöÄÜÖßő0-9_.]+)\s*$') + autosummary_item_re = re.compile(r'^\s+(~?[_a-zA-ZäüöÄÜÖßő][a-zA-ZäüöÄÜÖßő0-9_.]*)\s*.*?') toctree_arg_re = re.compile(r'^\s+:toctree:\s*(.*?)\s*$') template_arg_re = re.compile(r'^\s+:template:\s*(.*?)\s*$') inherited_members_arg_re = re.compile(r'^\s+:inherited-members:\s*$')