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.
@@ -26,4 +26,9 @@ class ClassWithCodeSummary:
26
26
  }
27
27
  ]
28
28
  }
29
+ """
30
+
31
+ class ClassWithAngleBracketSummary:
32
+ """
33
+ Test Method with param docstring containing angle bracket: link https://<variable>.foo.net/boo
29
34
  """
@@ -3,7 +3,7 @@ import sys
3
3
 
4
4
  sys.path.insert(0, os.path.abspath('.'))
5
5
 
6
- extensions = ['sphinx.ext.autodoc']
6
+ extensions = ['sphinx.ext.autodoc', 'yaml_builder']
7
7
 
8
8
  class includeTest:
9
9
  pass
@@ -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:/)/&lt;variable&gt;.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:/)/&lt;variable&gt;.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:/)/&lt;variable&gt;.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('<', '&lt;').replace('>', '&gt;')
@@ -1044,7 +1044,8 @@ class MarkdownTranslator(nodes.NodeVisitor):
1044
1044
  return text
1045
1045
 
1046
1046
  def visit_Text(self, node):
1047
- text = self.replace_special_unicode(node.astext())
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.dev1912073
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=q5qoYWw6GVDV8a3E8IxcSLWnN9sAer42VFRgadHBkgk,305
73
- py2docfx/docfx_yaml/writer.py,sha256=BQ02TshJM7O53_n07i_DJ-WtI7PYNyBJ2OLzivq4iiA,35037
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=lVCWbBIQk2oPFqsKK9gIb-b5DixutMabWjP7x03oj4s,1746
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=yPH0kaYzmroxuCO3ZRq5KLb10IqxqROY4io0B58Welc,712
104
- py2docfx/docfx_yaml/tests/roots/test-translator-contents/conf.py,sha256=avcbnIOV2mlGQwhMQJZC4W6UGRBRhnq1QBxjPWlySxQ,260
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.dev1912073.dist-info/METADATA,sha256=dp7RFy__EgLP0u45Jf6WovUwnvMf8tHoedy4AAd_J4Q,601
127
- py2docfx-0.1.11.dev1912073.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
128
- py2docfx-0.1.11.dev1912073.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
129
- py2docfx-0.1.11.dev1912073.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.44.0)
2
+ Generator: bdist_wheel (0.45.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5