diff --git a/CHANGES.rst b/CHANGES.rst index e4ff835..0d329c6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,8 @@ Changes in sphinx-automodapi 0.15.0 (unreleased) ------------------- +- Fixed issue with non-ascii characters in object members when the encoding is not ``utf8`` [#153] + 0.14.1 (2022-01-12) ------------------- diff --git a/docs/conf.py b/docs/conf.py index c453cc2..5dafd40 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -38,7 +38,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. diff --git a/sphinx_automodapi/automodsumm.py b/sphinx_automodapi/automodsumm.py index bd6d9f1..dd2dfc2 100644 --- a/sphinx_automodapi/automodsumm.py +++ b/sphinx_automodapi/automodsumm.py @@ -487,7 +487,7 @@ def generate_automodsumm_docs(lines, srcfn, app=None, suffix='.rst', new_files.append(fn) - f = open(fn, 'w') + f = open(fn, 'w', encoding='utf8') try: diff --git a/sphinx_automodapi/tests/cases/non_ascii/input/index.rst b/sphinx_automodapi/tests/cases/non_ascii/input/index.rst index a0275eb..dc7cf3b 100644 --- a/sphinx_automodapi/tests/cases/non_ascii/input/index.rst +++ b/sphinx_automodapi/tests/cases/non_ascii/input/index.rst @@ -1,3 +1,4 @@ Ceçi est un exemple qui inclus des charactères non-ASCII .. automodapi:: sphinx_automodapi.tests.example_module.functions +.. automodapi:: sphinx_automodapi.tests.example_module.nonascii 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.rst new file mode 100644 index 0000000..1ea0c55 --- /dev/null +++ b/sphinx_automodapi/tests/cases/non_ascii/output/api/sphinx_automodapi.tests.example_module.nonascii.NonAscii.rst @@ -0,0 +1,19 @@ +NonAscii +======== + +.. currentmodule:: sphinx_automodapi.tests.example_module.nonascii + +.. autoclass:: NonAscii + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~NonAscii.get_ß + ~NonAscii.get_äöü + + .. rubric:: Methods Documentation + + .. automethod:: get_ß + .. automethod:: get_äöü diff --git a/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodapi b/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodapi index a80b228..f7e71cd 100644 --- a/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodapi +++ b/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodapi @@ -12,3 +12,23 @@ Functions .. automodsumm:: sphinx_automodapi.tests.example_module.functions :functions-only: :toctree: api + + +sphinx_automodapi.tests.example_module.nonascii Module +------------------------------------------------------ + +.. automodule:: sphinx_automodapi.tests.example_module.nonascii + +Classes +^^^^^^^ + +.. automodsumm:: sphinx_automodapi.tests.example_module.nonascii + :classes-only: + :toctree: api + +Class Inheritance Diagram +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automod-diagram:: sphinx_automodapi.tests.example_module.nonascii + :private-bases: + :parts: 1 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 8aa64a3..fb4ef02 100644 --- a/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodsumm +++ b/sphinx_automodapi/tests/cases/non_ascii/output/index.rst.automodsumm @@ -6,3 +6,10 @@ add subtract multiply +.. currentmodule:: sphinx_automodapi.tests.example_module.nonascii + +.. autosummary:: + :toctree: api + + NonAscii + diff --git a/sphinx_automodapi/tests/example_module/nonascii.py b/sphinx_automodapi/tests/example_module/nonascii.py new file mode 100644 index 0000000..ccded8e --- /dev/null +++ b/sphinx_automodapi/tests/example_module/nonascii.py @@ -0,0 +1,15 @@ +__all__ = ['NonAscii'] + + +class NonAscii(object): + def get_äöü(self): + """ + Return a string with common umlauts like äöüß + """ + return 'äöü' + + def get_ß(self): + """ + Return a string with the eszett symbol + """ + return 'ß'