py2docfx 0.1.11.dev1912073__py3-none-any.whl → 0.1.11.dev1918939__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py2docfx/docfx_yaml/tests/roots/test-translator-contents/code_with_docstring.py +5 -0
- py2docfx/docfx_yaml/tests/roots/test-translator-contents/conf.py +1 -1
- py2docfx/docfx_yaml/tests/roots/test-translator-method/code_with_docstring.py +19 -0
- py2docfx/docfx_yaml/tests/roots/test-translator-method/conf.py +24 -0
- py2docfx/docfx_yaml/tests/test_translator_contents.py +18 -0
- py2docfx/docfx_yaml/tests/test_translator_method.py +42 -0
- py2docfx/docfx_yaml/write_utils.py +12 -1
- py2docfx/docfx_yaml/writer.py +2 -1
- {py2docfx-0.1.11.dev1912073.dist-info → py2docfx-0.1.11.dev1918939.dist-info}/METADATA +1 -1
- {py2docfx-0.1.11.dev1912073.dist-info → py2docfx-0.1.11.dev1918939.dist-info}/RECORD +12 -9
- {py2docfx-0.1.11.dev1912073.dist-info → py2docfx-0.1.11.dev1918939.dist-info}/WHEEL +1 -1
- {py2docfx-0.1.11.dev1912073.dist-info → py2docfx-0.1.11.dev1918939.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
class TestClassA():
|
2
|
+
"""Test Class A
|
3
|
+
some summary to ensure class parameters and constructor parametes are put in two field lists
|
4
|
+
|
5
|
+
"""
|
6
|
+
def __init__(self) -> None:
|
7
|
+
pass
|
8
|
+
|
9
|
+
def method_param_docstring_contain_angle_bracket(self):
|
10
|
+
"""Test Method with param docstring containing angle bracket
|
11
|
+
|
12
|
+
:param str paramE: Test Param E, link https://<variable>.foo.net/boo
|
13
|
+
"""
|
14
|
+
pass
|
15
|
+
|
16
|
+
def method_docstring_contain_angle_bracket(self):
|
17
|
+
"""Test Method with param docstring containing angle bracket: link https://<variable>.foo.net/boo
|
18
|
+
"""
|
19
|
+
pass
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import os
|
2
|
+
import sys
|
3
|
+
|
4
|
+
sys.path.insert(0, os.path.abspath('.'))
|
5
|
+
|
6
|
+
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'yaml_builder']
|
7
|
+
|
8
|
+
class includeTest:
|
9
|
+
pass
|
10
|
+
|
11
|
+
# The suffix of source filenames.
|
12
|
+
source_suffix = '.rst'
|
13
|
+
|
14
|
+
autodoc_mock_imports = [
|
15
|
+
'dummy'
|
16
|
+
]
|
17
|
+
|
18
|
+
nitpicky = True
|
19
|
+
|
20
|
+
autodoc_default_options = {
|
21
|
+
'inherited-members': True
|
22
|
+
}
|
23
|
+
|
24
|
+
napoleon_preprocess_types = True
|
@@ -42,3 +42,21 @@ def test_classWithCodeSummary_checkLastLineBracket(app):
|
|
42
42
|
summary = app.env.docfx_info_field_data[objectToGenXml]['summary']
|
43
43
|
summaryList = [line for line in summary.splitlines() if line]
|
44
44
|
assert (summaryList[-1] == '}') # Translator shouldn't skip last line of bracket (even there's no alphabet =or digit in this line)
|
45
|
+
|
46
|
+
|
47
|
+
@pytest.mark.sphinx('yaml', testroot='translator-contents')
|
48
|
+
def test_classWithAngleBracketSummary_checkSummary(app):
|
49
|
+
# Test data definition
|
50
|
+
objectToGenXml = 'code_with_docstring.ClassWithAngleBracketSummary'
|
51
|
+
objectToGenXmlType = 'class'
|
52
|
+
|
53
|
+
# Arrange
|
54
|
+
prepare_app_envs(app, objectToGenXml)
|
55
|
+
doctree = load_rst_transform_to_doctree(app, objectToGenXmlType, objectToGenXml)
|
56
|
+
|
57
|
+
# Act
|
58
|
+
translator(app, '', doctree)
|
59
|
+
|
60
|
+
# Assert
|
61
|
+
summary = app.env.docfx_info_field_data[objectToGenXml]['summary']
|
62
|
+
assert summary == 'Test Method with param docstring containing angle bracket: link [https:/](https:/)/<variable>.foo.net/boo'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import pytest
|
2
|
+
|
3
|
+
from sphinx.testing import restructuredtext
|
4
|
+
from sphinx.io import SphinxStandaloneReader
|
5
|
+
from sphinx import addnodes
|
6
|
+
from translator import translator
|
7
|
+
|
8
|
+
from .utils.test_utils import prepare_app_envs,load_rst_transform_to_doctree
|
9
|
+
|
10
|
+
@pytest.mark.sphinx('yaml', testroot='translator-method')
|
11
|
+
def test_paramDocstringContainingAngleBrackets_checkEncoded(app):
|
12
|
+
# Test data definition
|
13
|
+
objectToGenXml = 'code_with_docstring.TestClassA.method_param_docstring_contain_angle_bracket'
|
14
|
+
objectToGenXmlType = 'function'
|
15
|
+
|
16
|
+
# Arrange
|
17
|
+
prepare_app_envs(app, objectToGenXml)
|
18
|
+
doctree = load_rst_transform_to_doctree(app, objectToGenXmlType, objectToGenXml)
|
19
|
+
|
20
|
+
# Act
|
21
|
+
translator(app, '', doctree)
|
22
|
+
|
23
|
+
# Assert
|
24
|
+
summary = app.env.docfx_info_field_data[objectToGenXml]['parameters'][0]['description']
|
25
|
+
assert (summary == '**paramE** (<xref:str>) -- Test Param E, link [https:/](https:/)/<variable>.foo.net/boo')
|
26
|
+
|
27
|
+
@pytest.mark.sphinx('yaml', testroot='translator-method')
|
28
|
+
def test_docstringContainingAngleBrackets_checkEncoded(app):
|
29
|
+
# Test data definition
|
30
|
+
objectToGenXml = 'code_with_docstring.TestClassA.method_docstring_contain_angle_bracket'
|
31
|
+
objectToGenXmlType = 'function'
|
32
|
+
|
33
|
+
# Arrange
|
34
|
+
prepare_app_envs(app, objectToGenXml)
|
35
|
+
doctree = load_rst_transform_to_doctree(app, objectToGenXmlType, objectToGenXml)
|
36
|
+
|
37
|
+
# Act
|
38
|
+
translator(app, '', doctree)
|
39
|
+
|
40
|
+
# Assert
|
41
|
+
summary = app.env.docfx_info_field_data[objectToGenXml]['summary']
|
42
|
+
assert summary == 'Test Method with param docstring containing angle bracket: link [https:/](https:/)/<variable>.foo.net/boo'
|
@@ -3,4 +3,15 @@ def is_inline_text_children_of_versionmodified(node):
|
|
3
3
|
if hasattr(node.parent, 'parent') and node.parent.parent is not None:
|
4
4
|
if node.parent.parent.tagname == 'versionmodified':
|
5
5
|
return True
|
6
|
-
return False
|
6
|
+
return False
|
7
|
+
|
8
|
+
def replace_special_unicode(text):
|
9
|
+
text = text.replace('\u201c', '"')
|
10
|
+
text = text.replace('\u201d', '"')
|
11
|
+
text = text.replace('\u2018', "'")
|
12
|
+
text = text.replace('\u2019', "'")
|
13
|
+
text = text.replace('\u2026', "...")
|
14
|
+
return text
|
15
|
+
|
16
|
+
def replace_angle_brackets_with_html_entities(text):
|
17
|
+
return text.replace('<', '<').replace('>', '>')
|
py2docfx/docfx_yaml/writer.py
CHANGED
@@ -1044,7 +1044,8 @@ class MarkdownTranslator(nodes.NodeVisitor):
|
|
1044
1044
|
return text
|
1045
1045
|
|
1046
1046
|
def visit_Text(self, node):
|
1047
|
-
text =
|
1047
|
+
text = write_utils.replace_special_unicode(node.astext())
|
1048
|
+
text = write_utils.replace_angle_brackets_with_html_entities(text)
|
1048
1049
|
if write_utils.is_inline_text_children_of_versionmodified(node.parent):
|
1049
1050
|
text = text.strip(' ')
|
1050
1051
|
self.add_text(text)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: py2docfx
|
3
|
-
Version: 0.1.11.
|
3
|
+
Version: 0.1.11.dev1918939
|
4
4
|
Summary: A package built based on Sphinx which download source code package and generate yaml files supported by docfx.
|
5
5
|
Author: Microsoft Corporation
|
6
6
|
License: MIT License
|
@@ -69,8 +69,8 @@ py2docfx/docfx_yaml/return_type_utils.py,sha256=nmdCUOvwdYk2jF6RqmOvU6gjXmXUTPUe
|
|
69
69
|
py2docfx/docfx_yaml/settings.py,sha256=JQZNwFebczl-zn8Yk2taAGANRi-Hw8hywtDWxqXXFyQ,373
|
70
70
|
py2docfx/docfx_yaml/translator.py,sha256=IXxrOEF2L1gZjGciimyrNHRHQUf1Xy3vr2UUR5i2vyM,25961
|
71
71
|
py2docfx/docfx_yaml/utils.py,sha256=m5jC_qP2NKqzUx_z0zgZ-HAmxQdNTpJYKkL_F9vGeII,1555
|
72
|
-
py2docfx/docfx_yaml/write_utils.py,sha256=
|
73
|
-
py2docfx/docfx_yaml/writer.py,sha256=
|
72
|
+
py2docfx/docfx_yaml/write_utils.py,sha256=dmE6Jrb8IEkfJ6kv2j0vBHS5qMVi7jbDINPzLurhGZk,677
|
73
|
+
py2docfx/docfx_yaml/writer.py,sha256=pIeYdXrU_xGnv6OjEyGYrgDCHt6dBrprYux-YZaaY_4,35120
|
74
74
|
py2docfx/docfx_yaml/yaml_builder.py,sha256=qSxXVS4iFCc1ZdL5QzLrv8hy3LHIQCrhO4WcTp01vag,2575
|
75
75
|
py2docfx/docfx_yaml/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
76
|
py2docfx/docfx_yaml/tests/conftest.py,sha256=CykkZxaDZ-3a1EIQdGBieSmHL9FdyTE2xTJZe9QgKcg,1214
|
@@ -78,10 +78,11 @@ py2docfx/docfx_yaml/tests/test_build_finished.py,sha256=PSyWuY_XWmNeSjQl4kBwHUWp
|
|
78
78
|
py2docfx/docfx_yaml/tests/test_method_arguments.py,sha256=Cvj9aoADtacKciVN8nempXW-KQL8nujSa9GNVuk6l_8,1578
|
79
79
|
py2docfx/docfx_yaml/tests/test_numpy_syntax.py,sha256=ssb3J_-Jzjybhh4eycCA_LkXbGflyZyIUAiTjlEYLiw,863
|
80
80
|
py2docfx/docfx_yaml/tests/test_translator_attributes.py,sha256=qZCsQGffq31k3UzpXkJpycplOXIq9gi2SxY6vu0DTfw,5224
|
81
|
-
py2docfx/docfx_yaml/tests/test_translator_contents.py,sha256=
|
81
|
+
py2docfx/docfx_yaml/tests/test_translator_contents.py,sha256=6Nb0nftqi8YXbmyTMsEKYWVmWc-HWqkiKz7gWNHsxQE,2432
|
82
82
|
py2docfx/docfx_yaml/tests/test_translator_data.py,sha256=zSVs3AT_TeAx1mrEYNTpy3Xy-FPrwwi93ly2EFclw5U,984
|
83
83
|
py2docfx/docfx_yaml/tests/test_translator_exceptions.py,sha256=A2zAcJOBGchDBNIDr15uD3lzLfVldJKYSAl0e1CD5Ds,10481
|
84
84
|
py2docfx/docfx_yaml/tests/test_translator_fieldlists.py,sha256=tDJ1l0c16oYfAlEIcidqEMwaXcX83Fg-rajpLtb2Wnk,1198
|
85
|
+
py2docfx/docfx_yaml/tests/test_translator_method.py,sha256=VQFAUX__WWLmJA6AQPLH8dUnXzeQirdvONZUIwwym-Q,1674
|
85
86
|
py2docfx/docfx_yaml/tests/test_translator_numpy_returns.py,sha256=nmC70WUqCRcB1tkRG9iq8mBuIcZKwGhK09StEvq0zf8,2970
|
86
87
|
py2docfx/docfx_yaml/tests/test_translator_rst_returns.py,sha256=BL3nOMMTPzNPJk-P9oMANiXnJ7ocuiecbFHH4DU1n40,2942
|
87
88
|
py2docfx/docfx_yaml/tests/test_translator_signatures.py,sha256=DM51EOb4UXLkrO1-4cQQQvvX210goAsnxKJH-4A2U2Q,1537
|
@@ -100,8 +101,8 @@ py2docfx/docfx_yaml/tests/roots/test-translator-attributes/code_with_docstring3.
|
|
100
101
|
py2docfx/docfx_yaml/tests/roots/test-translator-attributes/code_with_import.py,sha256=VySauK2eitQYigPZUsrlK8l4ab2SJPOYPQnBoKHgLTo,297
|
101
102
|
py2docfx/docfx_yaml/tests/roots/test-translator-attributes/conf.py,sha256=rFV8j1gOtlc2ubfcNf-qi6F1904_G4jMd_5e2fLzip0,358
|
102
103
|
py2docfx/docfx_yaml/tests/roots/test-translator-attributes/refered_objects.py,sha256=DJaX52mnHw9W3GSqKh75CYK87g4CczXNNjFO496Ai2U,79
|
103
|
-
py2docfx/docfx_yaml/tests/roots/test-translator-contents/code_with_docstring.py,sha256=
|
104
|
-
py2docfx/docfx_yaml/tests/roots/test-translator-contents/conf.py,sha256=
|
104
|
+
py2docfx/docfx_yaml/tests/roots/test-translator-contents/code_with_docstring.py,sha256=ffSheCUinQydQqt1Vm4VBaCtf5ECZFUkBG4APCz5xp8,869
|
105
|
+
py2docfx/docfx_yaml/tests/roots/test-translator-contents/conf.py,sha256=qnFx2JWf3soFQYBAG1S5jSLNoAjMbeRjsthOIcAenx0,276
|
105
106
|
py2docfx/docfx_yaml/tests/roots/test-translator-data/code_with_data.py,sha256=F5-o_cBTjLGzUmk2PEEY60zQz7B0YLe4-yDbEZrvwac,372
|
106
107
|
py2docfx/docfx_yaml/tests/roots/test-translator-data/conf.py,sha256=avcbnIOV2mlGQwhMQJZC4W6UGRBRhnq1QBxjPWlySxQ,260
|
107
108
|
py2docfx/docfx_yaml/tests/roots/test-translator-exceptions/code_with_docstring.py,sha256=vRbnBpO9YFCz7ZlNvUNh7l-ILBiwhzpN2mPm-rtKNQs,3543
|
@@ -109,6 +110,8 @@ py2docfx/docfx_yaml/tests/roots/test-translator-exceptions/conf.py,sha256=avcbnI
|
|
109
110
|
py2docfx/docfx_yaml/tests/roots/test-translator-exceptions/refered_objects.py,sha256=zTnP-R7nxTxZr2yHurKKQSPFSY9gz3_vmFI0OotI3_U,124
|
110
111
|
py2docfx/docfx_yaml/tests/roots/test-translator-fieldlists/code_with_multiple_fieldlists.py,sha256=llu95FRqwjtwrMdR1enMB1Lso59CYJBmUPQy6LvGGAA,502
|
111
112
|
py2docfx/docfx_yaml/tests/roots/test-translator-fieldlists/conf.py,sha256=KrvMHOj1LCdodwNwUsdCI_OMM-Bf_lpiUREk4egQWms,388
|
113
|
+
py2docfx/docfx_yaml/tests/roots/test-translator-method/code_with_docstring.py,sha256=6V40cvO6Dj85R-bfKDkKlF8FDkfY1p_EAtB6Nh4OKKE,640
|
114
|
+
py2docfx/docfx_yaml/tests/roots/test-translator-method/conf.py,sha256=A-QZx8-7Zg3_6X42F3LSyG5Nx0AoYkbKB2QbnM33PB0,402
|
112
115
|
py2docfx/docfx_yaml/tests/roots/test-translator-returns/code_with_returns_numpy.py,sha256=OGHOCBmRENAp4_MLYgyUsU2z7cm_hQx6Jtb8PSIs1Uo,748
|
113
116
|
py2docfx/docfx_yaml/tests/roots/test-translator-returns/code_with_returns_rst.py,sha256=sQ1gV9lN33NjXFetGrUNLD6qCJF9v7BMYBQnDLa2Kdo,644
|
114
117
|
py2docfx/docfx_yaml/tests/roots/test-translator-returns/conf.py,sha256=A-QZx8-7Zg3_6X42F3LSyG5Nx0AoYkbKB2QbnM33PB0,402
|
@@ -123,7 +126,7 @@ py2docfx/docfx_yaml/tests/roots/test-writer-uri/conf.py,sha256=avcbnIOV2mlGQwhMQ
|
|
123
126
|
py2docfx/docfx_yaml/tests/roots/test-writer-versions/code_with_version_directives.py,sha256=UuizbrJPaG_PcaH18BvbI9KQevOaLd4SslpnzMSqcrE,1030
|
124
127
|
py2docfx/docfx_yaml/tests/roots/test-writer-versions/conf.py,sha256=SCEKrm9VigArfdgf-GAieJD-40d0ctT6urmGIjFOZLM,404
|
125
128
|
py2docfx/docfx_yaml/tests/utils/test_utils.py,sha256=d0OYSUQ6NyoZx5mlLdNGGNhiNmmQhjVT4hQ6jY3VE_M,3383
|
126
|
-
py2docfx-0.1.11.
|
127
|
-
py2docfx-0.1.11.
|
128
|
-
py2docfx-0.1.11.
|
129
|
-
py2docfx-0.1.11.
|
129
|
+
py2docfx-0.1.11.dev1918939.dist-info/METADATA,sha256=qFhCrxON7bey8n63n6HttEng-Z34WZCrlTYqpRxuNWk,601
|
130
|
+
py2docfx-0.1.11.dev1918939.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
|
131
|
+
py2docfx-0.1.11.dev1918939.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
|
132
|
+
py2docfx-0.1.11.dev1918939.dist-info/RECORD,,
|
File without changes
|