py2docfx 0.1.9.dev1897607__py3-none-any.whl → 0.1.9.dev1926139__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.
Files changed (397) hide show
  1. py2docfx/__main__.py +77 -22
  2. py2docfx/convert_prepare/environment.py +59 -19
  3. py2docfx/convert_prepare/generate_document.py +12 -5
  4. py2docfx/convert_prepare/get_source.py +5 -1
  5. py2docfx/convert_prepare/git.py +24 -20
  6. py2docfx/convert_prepare/package_info.py +15 -9
  7. py2docfx/convert_prepare/pip_utils.py +29 -8
  8. py2docfx/convert_prepare/post_process/merge_toc.py +5 -1
  9. py2docfx/convert_prepare/sphinx_caller.py +31 -14
  10. py2docfx/convert_prepare/tests/test_generate_document.py +6 -4
  11. py2docfx/convert_prepare/tests/test_get_source.py +6 -6
  12. py2docfx/convert_prepare/tests/test_params.py +1 -1
  13. py2docfx/convert_prepare/tests/test_sphinx_caller.py +5 -3
  14. py2docfx/convert_prepare/tests/utils.py +11 -0
  15. py2docfx/docfx_yaml/build_finished.py +11 -3
  16. py2docfx/docfx_yaml/convert_class.py +4 -2
  17. py2docfx/docfx_yaml/convert_enum.py +4 -2
  18. py2docfx/docfx_yaml/convert_module.py +4 -2
  19. py2docfx/docfx_yaml/convert_package.py +4 -2
  20. py2docfx/docfx_yaml/logger.py +68 -0
  21. py2docfx/docfx_yaml/process_doctree.py +6 -4
  22. py2docfx/docfx_yaml/translator.py +5 -7
  23. py2docfx/docfx_yaml/writer.py +10 -4
  24. py2docfx/docfx_yaml/yaml_builder.py +0 -1
  25. py2docfx/venv/basevenv/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  26. py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +2 -2
  27. py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +4 -4
  28. py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -0
  29. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +145 -0
  30. py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
  31. py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +15 -9
  32. py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +83 -24
  33. py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +19 -8
  34. py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +78 -29
  35. py2docfx/venv/basevenv/Lib/site-packages/packaging/utils.py +33 -44
  36. py2docfx/venv/basevenv/Lib/site-packages/packaging/version.py +26 -7
  37. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +27 -32
  38. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  39. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  40. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +7 -9
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py +1 -4
  46. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +5 -8
  47. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +2 -1
  48. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +53 -0
  49. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  50. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  51. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  52. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  53. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  54. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  55. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  56. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  57. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  58. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  59. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  60. py2docfx/venv/basevenv/Lib/site-packages/setuptools/archive_util.py +6 -4
  61. py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +25 -19
  62. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/__init__.py +9 -1
  63. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  64. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py +3 -4
  65. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  66. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  67. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +43 -84
  68. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py +3 -3
  69. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  70. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +15 -14
  71. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +26 -30
  72. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +4 -4
  73. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  74. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +57 -80
  75. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
  76. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +32 -32
  77. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
  78. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
  79. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  80. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  81. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/rotate.py +6 -6
  82. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/saveopts.py +2 -2
  83. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +11 -10
  84. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +3 -3
  85. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  86. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/expand.py +22 -16
  87. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/pyprojecttoml.py +12 -10
  88. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  89. py2docfx/venv/basevenv/Lib/site-packages/setuptools/depends.py +26 -7
  90. py2docfx/venv/basevenv/Lib/site-packages/setuptools/discovery.py +21 -14
  91. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +51 -47
  92. py2docfx/venv/basevenv/Lib/site-packages/setuptools/errors.py +21 -26
  93. py2docfx/venv/basevenv/Lib/site-packages/setuptools/extension.py +18 -6
  94. py2docfx/venv/basevenv/Lib/site-packages/setuptools/glob.py +35 -15
  95. py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +6 -1
  96. py2docfx/venv/basevenv/Lib/site-packages/setuptools/launch.py +1 -1
  97. py2docfx/venv/basevenv/Lib/site-packages/setuptools/logging.py +2 -2
  98. py2docfx/venv/basevenv/Lib/site-packages/setuptools/modified.py +16 -6
  99. py2docfx/venv/basevenv/Lib/site-packages/setuptools/monkey.py +5 -5
  100. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +35 -24
  101. py2docfx/venv/basevenv/Lib/site-packages/setuptools/namespaces.py +2 -2
  102. py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +42 -43
  103. py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +19 -12
  104. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  105. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  106. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  107. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +2 -2
  108. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  109. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  110. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  111. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  112. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  113. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  114. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  115. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  116. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  117. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +171 -76
  118. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  119. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  120. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  121. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  122. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  123. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  124. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  125. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  126. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  127. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  128. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  129. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  130. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  131. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  132. py2docfx/venv/basevenv/Lib/site-packages/setuptools/unicode_utils.py +3 -3
  133. py2docfx/venv/basevenv/Lib/site-packages/setuptools/warnings.py +5 -2
  134. py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +4 -4
  135. py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
  136. py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  137. py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  138. py2docfx/venv/basevenv/Lib/site-packages/wheel/cli/convert.py +279 -220
  139. py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -9
  140. py2docfx/venv/venv1/Lib/site-packages/_distutils_hack/__init__.py +2 -3
  141. py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +1 -1
  142. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +2 -2
  143. py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +5 -3
  144. py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
  145. py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +6 -1
  146. py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +13 -5
  147. py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +3 -3
  148. py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +1 -1
  149. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +16 -5
  150. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +15 -4
  151. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +20 -10
  152. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +3 -1
  153. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +55 -19
  154. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +46 -15
  155. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +8 -3
  156. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +9 -3
  157. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +9 -2
  158. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +4 -1
  159. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +27 -8
  160. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +6 -3
  161. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +4 -1
  162. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +6 -10
  163. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +101 -1
  164. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +1 -1
  165. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +9 -2
  166. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +1 -1
  167. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +7 -5
  168. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +0 -1
  169. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +11 -3
  170. py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +11 -3
  171. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +5 -2
  172. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +4 -1
  173. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +3 -1
  174. py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +47 -16
  175. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +3 -1
  176. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +1 -1
  177. py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +3 -1
  178. py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +1 -1
  179. py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +15 -3
  180. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +15 -5
  181. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +1 -1
  182. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +12 -1
  183. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +24 -4
  184. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +119 -110
  185. py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +1 -1
  186. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +3 -1
  187. py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +10 -1
  188. py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +41 -39
  189. py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +2 -2
  190. py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +2 -2
  191. py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +17 -11
  192. py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +17 -13
  193. py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +1 -3
  194. py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
  195. py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +4 -0
  196. py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +1 -1
  197. py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +25 -8
  198. py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +34 -16
  199. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +2 -1
  200. py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +2 -3
  201. py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
  202. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +10 -2
  203. py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +1 -0
  204. py2docfx/venv/venv1/Lib/site-packages/jwt/__init__.py +3 -2
  205. py2docfx/venv/venv1/Lib/site-packages/jwt/algorithms.py +31 -16
  206. py2docfx/venv/venv1/Lib/site-packages/jwt/api_jws.py +19 -8
  207. py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwt.py +75 -19
  208. py2docfx/venv/venv1/Lib/site-packages/jwt/exceptions.py +8 -0
  209. py2docfx/venv/venv1/Lib/site-packages/jwt/help.py +4 -1
  210. py2docfx/venv/venv1/Lib/site-packages/jwt/jwks_client.py +4 -2
  211. py2docfx/venv/venv1/Lib/site-packages/jwt/utils.py +7 -10
  212. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -1
  213. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -3
  214. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +27 -32
  215. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
  216. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
  217. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
  218. py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +3 -1
  219. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +7 -2
  220. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +18 -21
  221. py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +7 -3
  222. py2docfx/venv/venv1/Lib/site-packages/proto/message.py +6 -35
  223. py2docfx/venv/venv1/Lib/site-packages/proto/version.py +1 -1
  224. py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +7 -9
  225. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
  226. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
  227. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
  228. py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py +1 -4
  229. py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +5 -8
  230. py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +2 -1
  231. py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +53 -0
  232. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
  233. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
  234. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
  235. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
  236. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
  237. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
  238. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
  239. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
  240. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
  241. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
  242. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
  243. py2docfx/venv/venv1/Lib/site-packages/setuptools/archive_util.py +6 -4
  244. py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +25 -19
  245. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/__init__.py +9 -1
  246. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
  247. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py +3 -4
  248. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
  249. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
  250. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +43 -84
  251. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py +3 -3
  252. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py +2 -9
  253. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +15 -14
  254. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +26 -30
  255. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +4 -4
  256. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/dist_info.py +3 -7
  257. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +57 -80
  258. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
  259. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +32 -32
  260. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
  261. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
  262. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_lib.py +10 -7
  263. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
  264. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/rotate.py +6 -6
  265. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/saveopts.py +2 -2
  266. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +11 -10
  267. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +3 -3
  268. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
  269. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/expand.py +22 -16
  270. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/pyprojecttoml.py +12 -10
  271. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
  272. py2docfx/venv/venv1/Lib/site-packages/setuptools/depends.py +26 -7
  273. py2docfx/venv/venv1/Lib/site-packages/setuptools/discovery.py +21 -14
  274. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +51 -47
  275. py2docfx/venv/venv1/Lib/site-packages/setuptools/errors.py +21 -26
  276. py2docfx/venv/venv1/Lib/site-packages/setuptools/extension.py +18 -6
  277. py2docfx/venv/venv1/Lib/site-packages/setuptools/glob.py +35 -15
  278. py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +6 -1
  279. py2docfx/venv/venv1/Lib/site-packages/setuptools/launch.py +1 -1
  280. py2docfx/venv/venv1/Lib/site-packages/setuptools/logging.py +2 -2
  281. py2docfx/venv/venv1/Lib/site-packages/setuptools/modified.py +16 -6
  282. py2docfx/venv/venv1/Lib/site-packages/setuptools/monkey.py +5 -5
  283. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +35 -24
  284. py2docfx/venv/venv1/Lib/site-packages/setuptools/namespaces.py +2 -2
  285. py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +42 -43
  286. py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +19 -12
  287. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
  288. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
  289. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
  290. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +2 -2
  291. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
  292. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
  293. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
  294. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
  295. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
  296. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
  297. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
  298. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
  299. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
  300. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +171 -76
  301. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
  302. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  303. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
  304. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
  305. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
  306. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
  307. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
  308. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
  309. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
  310. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
  311. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
  312. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
  313. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
  314. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
  315. py2docfx/venv/venv1/Lib/site-packages/setuptools/unicode_utils.py +3 -3
  316. py2docfx/venv/venv1/Lib/site-packages/setuptools/warnings.py +5 -2
  317. py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +4 -4
  318. py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
  319. py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
  320. py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +17 -2
  321. py2docfx/venv/venv1/Lib/site-packages/wheel/cli/convert.py +279 -220
  322. py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
  323. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/METADATA +1 -1
  324. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/RECORD +327 -385
  325. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/WHEEL +1 -1
  326. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  327. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  328. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  329. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  330. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  331. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  332. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  333. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  334. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  335. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  336. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  337. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  338. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  339. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  340. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  341. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  342. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  343. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  344. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  345. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  346. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  347. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  348. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  349. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  350. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  351. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  352. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  353. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  354. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  355. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  356. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  357. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  358. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  359. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  360. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  361. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
  362. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
  363. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
  364. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
  365. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
  366. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  367. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
  368. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
  369. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
  370. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  371. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
  372. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
  373. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
  374. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  375. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
  376. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  377. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
  378. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
  379. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  380. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  381. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  382. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  383. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  384. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
  385. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
  386. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
  387. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
  388. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
  389. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
  390. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
  391. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
  392. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
  393. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
  394. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
  395. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
  396. /py2docfx/convert_prepare/conf_templates/{master_doc.rst_t → root_doc.rst_t} +0 -0
  397. {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,8 @@
1
1
  import subprocess
2
2
  import asyncio
3
+ import os
3
4
  from py2docfx import PACKAGE_ROOT
5
+ from py2docfx.docfx_yaml.logger import get_logger, log_subprocess_ouput
4
6
 
5
7
  PYPI = "pypi"
6
8
 
@@ -10,10 +12,9 @@ pip_install_common_options = [
10
12
  "--no-compile",
11
13
  "--no-warn-conflicts",
12
14
  "--disable-pip-version-check",
13
- "--verbose",
15
+ "--verbose"
14
16
  ]
15
17
 
16
-
17
18
  def download(package_name, path, extra_index_url=None, prefer_source_distribution=True):
18
19
  # Downloads a package from PyPI to the specified path using pip.
19
20
  download_param = ["pip", "download", "--dest", path, "--no-deps", package_name]
@@ -24,7 +25,9 @@ def download(package_name, path, extra_index_url=None, prefer_source_distributio
24
25
  download_param.append("--no-binary=:all:")
25
26
  else:
26
27
  download_param.append("--prefer-binary")
27
- subprocess.run(download_param, check=True, cwd=PACKAGE_ROOT)
28
+ output = subprocess.run(download_param, check=True, cwd=PACKAGE_ROOT, capture_output=True, text=True)
29
+ docfx_logger = get_logger(__name__)
30
+ log_subprocess_ouput(output, docfx_logger)
28
31
 
29
32
 
30
33
  def install(package_name, options):
@@ -32,16 +35,34 @@ def install(package_name, options):
32
35
  install_param = "pip install {} {}".format(
33
36
  " ".join(pip_install_common_options + options), package_name
34
37
  ).split(" ")
35
- subprocess.run(install_param, check=True, cwd=PACKAGE_ROOT)
36
-
38
+ output = subprocess.run(install_param, check=True, cwd=PACKAGE_ROOT, capture_output=True, text=True)
39
+ docfx_logger = get_logger(__name__)
40
+ log_subprocess_ouput(output, docfx_logger)
37
41
 
38
42
  def install_in_exe(exe_path, package_name, options):
39
43
  # Installs a package from PyPI using pip.
40
44
  install_param = [exe_path] + "-m pip install {} {}".format(
41
45
  " ".join(pip_install_common_options + options), package_name
42
46
  ).split(" ")
43
- subprocess.run(install_param, check=True, cwd=PACKAGE_ROOT)
44
-
47
+ output = subprocess.run(install_param, check=True, cwd=PACKAGE_ROOT, capture_output=True, text=True)
48
+ docfx_logger = get_logger(__name__)
49
+ log_subprocess_ouput(output, docfx_logger)
50
+
45
51
  async def install_in_exe_async(exe_path, package_name, options):
46
52
  pip_cmd = ["-m", "pip", "install"]+ pip_install_common_options + options + [package_name]
47
- await(await asyncio.create_subprocess_exec(exe_path, *pip_cmd)).wait()
53
+ await run_async_subprocess(exe_path, pip_cmd)
54
+ # await(await asyncio.create_subprocess_exec(exe_path, *pip_cmd)).wait()
55
+
56
+ async def run_async_subprocess(exe_path, cmd):
57
+ process = await asyncio.create_subprocess_exec(
58
+ exe_path, *cmd,
59
+ stdout=asyncio.subprocess.PIPE,
60
+ stderr=asyncio.subprocess.PIPE
61
+ )
62
+ stdout, stderr = await process.communicate()
63
+ docfx_logger = get_logger(__name__)
64
+ if process.returncode != 0:
65
+ docfx_logger.error(stderr.decode('utf-8'))
66
+ raise RuntimeError()
67
+ else:
68
+ docfx_logger.info(stdout.decode('utf-8'))
@@ -2,10 +2,13 @@ from __future__ import annotations # Avoid A | B annotation break under <= py3.9
2
2
  import os
3
3
  import shutil
4
4
 
5
+ from py2docfx.docfx_yaml.logger import get_logger
6
+
5
7
  TOC_FILE_PATH = "toc.yml"
6
8
  PACKAGE_TOC_FILE_PATH = "_build/docfx_yaml/toc.yml"
7
9
  def merge_toc(
8
10
  root_doc_path: str | os.PathLike, package_doc_path: str | os.PathLike):
11
+ docfx_logger = get_logger(__name__)
9
12
  root_toc_path = os.path.join(root_doc_path, TOC_FILE_PATH)
10
13
  package_toc_path = os.path.join(package_doc_path, PACKAGE_TOC_FILE_PATH)
11
14
 
@@ -18,7 +21,8 @@ def merge_toc(
18
21
  if not toc_content.endswith("\n"):
19
22
  root_toc_handle.write("\n")
20
23
  else:
21
- raise ValueError(f"TOC content empty: {package_toc_path}")
24
+ docfx_logger.error(f"TOC content empty: {package_toc_path}")
25
+ raise ValueError()
22
26
 
23
27
  # delete package toc.yml
24
28
  os.remove(package_toc_path)
@@ -5,6 +5,7 @@ import sphinx.ext.apidoc as apidoc
5
5
  import subprocess
6
6
 
7
7
  from py2docfx import PACKAGE_ROOT
8
+ from py2docfx.docfx_yaml.logger import get_logger, log_subprocess_ouput
8
9
  from py2docfx.convert_prepare.package_info import PackageInfo
9
10
  from py2docfx.convert_prepare.paths import folder_is_hidden
10
11
  from py2docfx.convert_prepare.subpackage import (get_subpackages,
@@ -19,6 +20,7 @@ def run_apidoc(rst_path, source_code_path, exclude_paths, package_info: PackageI
19
20
  Replacing
20
21
  https://apidrop.visualstudio.com/Content%20CI/_git/ReferenceAutomation?path=/Python/build.ps1&line=110&lineEnd=126&lineStartColumn=1&lineEndColumn=14&lineStyle=plain&_a=contents
21
22
  """
23
+ docfx_logger = get_logger(__name__)
22
24
  subfolderList = [name for name in
23
25
  os.listdir(source_code_path)
24
26
  if os.path.isdir(os.path.join(source_code_path, name))
@@ -28,16 +30,29 @@ def run_apidoc(rst_path, source_code_path, exclude_paths, package_info: PackageI
28
30
  for subfolder in subfolderList:
29
31
  subfolderPath = os.path.join(source_code_path, subfolder)
30
32
  if os.path.isdir(subfolderPath):
31
- print("<CI INFO>: Subfolder path {}.".format(subfolderPath))
32
- args = [
33
- "--module-first",
34
- "--no-headings",
35
- "--no-toc",
36
- "--implicit-namespaces",
37
- "-o",
38
- rst_path,
39
- subfolderPath,
40
- ]
33
+ msg = "<CI INFO>: Subfolder path {}.".format(subfolderPath)
34
+ docfx_logger.info(msg)
35
+ if os.environ.get('LOG_LEVEL') == 'INFO':
36
+ args = [
37
+ "--module-first",
38
+ "--no-headings",
39
+ "--no-toc",
40
+ "--implicit-namespaces",
41
+ "-o",
42
+ rst_path,
43
+ subfolderPath,
44
+ ]
45
+ else:
46
+ args = [
47
+ "-q",
48
+ "--module-first",
49
+ "--no-headings",
50
+ "--no-toc",
51
+ "--implicit-namespaces",
52
+ "-o",
53
+ rst_path,
54
+ subfolderPath
55
+ ]
41
56
  args.extend(exclude_paths)
42
57
  apidoc.main(args)
43
58
  if package_info.build_in_subpackage and subfolder == "azure":
@@ -56,14 +71,16 @@ def run_converter(rst_path, out_path, sphinx_build_path: str, extra_package_path
56
71
  Replacing
57
72
  https://apidrop.visualstudio.com/Content%20CI/_git/ReferenceAutomation?path=/Python/build.ps1&line=150&lineEnd=161&lineStartColumn=13&lineEndColumn=52&lineStyle=plain&_a=contents
58
73
  """
59
-
74
+ docfx_logger = get_logger(__name__)
60
75
  outdir = os.path.join(out_path, "_build")
61
76
 
62
77
  # Sphinx/docutils have memory leak including linecaches, module-import-caches,
63
78
  # Use a subprocess on production to prevent out of memory
64
79
 
65
80
  if not sys.executable:
66
- raise ValueError("Can't get the executable binary for the Python interpreter.")
81
+ msg = "Can't get the executable binary for the Python interpreter."
82
+ docfx_logger.error(msg)
83
+ raise ValueError()
67
84
  sphinx_param = [
68
85
  executable,
69
86
  sphinx_build_path,
@@ -82,6 +99,6 @@ def run_converter(rst_path, out_path, sphinx_build_path: str, extra_package_path
82
99
  env_tmp["PYTHONPATH"] = f"{extra_package_path};{package_root_parent};"
83
100
  else:
84
101
  env_tmp["PYTHONPATH"] = f"{extra_package_path}:{package_root_parent}:"
85
- subprocess.run(sphinx_param, check=True, cwd=PACKAGE_ROOT, env=env_tmp)
86
-
102
+ output = subprocess.run(sphinx_param, check=True, cwd=PACKAGE_ROOT, env=env_tmp, capture_output=True ,text=True)
103
+ log_subprocess_ouput(output, docfx_logger)
87
104
  return outdir
@@ -10,15 +10,17 @@ import sphinx.cmd.build
10
10
  from py2docfx.convert_prepare.generate_document import generate_document
11
11
  from py2docfx.convert_prepare.package_info import PackageInfo
12
12
  from py2docfx.convert_prepare.source import Source
13
+ from py2docfx.convert_prepare.tests.utils import prepare_log_folder
13
14
 
14
15
  def test_generate_document(tmp_path):
15
16
  """
16
17
  Test the generate_document function.
17
18
  """
18
19
  # init test case
19
- source_code_path = "convert_prepare\\tests\\data\\generate_document"
20
+ prepare_log_folder()
21
+ source_code_path = os.path.join("convert_prepare", "tests", "data", "generate_document")
20
22
  output_root = os.path.join(tmp_path, "output")
21
- shutil.copytree(source_code_path, os.path.join(tmp_path, "source\\0"))
23
+ shutil.copytree(source_code_path, os.path.join(tmp_path, "source", "0"))
22
24
  package = PackageInfo()
23
25
  package.name = "azure-dummy-sourcecode"
24
26
  package.exclude_path = ["test*", "example*", "sample*", "doc*"]
@@ -27,7 +29,7 @@ def test_generate_document(tmp_path):
27
29
  package.build_in_subpackage = False
28
30
  package.extra_index_url = None
29
31
  package.prefer_source_distribution = False
30
- source_folder = os.path.join(tmp_path, "source\\0\\azure-dummy-sourcecode")
32
+ source_folder = os.path.join(tmp_path, "source", "0", "azure-dummy-sourcecode")
31
33
  yaml_output_folder = os.path.join(tmp_path, "yaml_output")
32
34
  package.path = Source(
33
35
  source_folder=source_folder, yaml_output_folder=yaml_output_folder, package_name=package.name
@@ -45,7 +47,7 @@ def test_generate_document(tmp_path):
45
47
  generate_document(package, output_root, sphinx_build_path = sphinx.cmd.build.__file__, extra_package_path = source_folder)
46
48
 
47
49
  #assert the result
48
- yaml_path = os.path.join(yaml_output_folder, "_build\\docfx_yaml")
50
+ yaml_path = os.path.join(yaml_output_folder, "_build", "docfx_yaml")
49
51
  assert os.path.exists(yaml_path)
50
52
  assert os.path.exists(os.path.join(yaml_path, "azure.dummy.sourcecode.foo.foo.yml"))
51
53
  assert os.path.exists(os.path.join(yaml_path, "azure.dummy.sourcecode.boo.boo.yml"))
@@ -94,7 +94,7 @@ def test_get_source_dist_file_zip(init_package_info):
94
94
  package.location = "https://files.pythonhosted.org/packages/3e/71/f6f71a276e2e69264a97ad39ef850dca0a04fce67b12570730cb38d0ccac/azure-common-1.1.28.zip"
95
95
  get_source.get_source(sys.executable, package, 1)
96
96
  assert os.path.exists("dist_temp/1/azure-common-1.1.28")
97
- assert package.path.source_folder == "dist_temp\\1\\azure-common-1.1.28"
97
+ assert package.path.source_folder == os.path.join("dist_temp", "1", "azure-common-1.1.28")
98
98
  assert os.path.exists("dist_temp/1/azure-common-1.1.28.zip") is False
99
99
 
100
100
  def test_get_source_dist_file_whl(init_package_info):
@@ -112,7 +112,7 @@ def test_get_source_dist_file_whl(init_package_info):
112
112
  package.location = "https://files.pythonhosted.org/packages/62/55/7f118b9c1b23ec15ca05d15a578d8207aa1706bc6f7c87218efffbbf875d/azure_common-1.1.28-py2.py3-none-any.whl"
113
113
  get_source.get_source(sys.executable, package, 2)
114
114
  assert os.path.exists("dist_temp/2/azure_common-1.1.28")
115
- assert package.path.source_folder == "dist_temp\\2\\azure_common-1.1.28"
115
+ assert package.path.source_folder == os.path.join("dist_temp", "2", "azure_common-1.1.28")
116
116
  assert os.path.exists("dist_temp/2/azure_common-1.1.28-py2.py3-none-any.whl") is False
117
117
 
118
118
  def test_get_source_dist_file_tar(init_package_info):
@@ -130,7 +130,7 @@ def test_get_source_dist_file_tar(init_package_info):
130
130
  package.location = "https://files.pythonhosted.org/packages/fa/19/43a9eb812b4d6071fdc2c55640318f7eb5a1be8dbd3b6f9d96a1996e1bb6/azure-core-1.29.4.tar.gz"
131
131
  get_source.get_source(sys.executable, package, 3)
132
132
  assert os.path.exists("dist_temp/3/azure-core-1.29.4")
133
- assert package.path.source_folder == "dist_temp\\3\\azure-core-1.29.4"
133
+ assert package.path.source_folder == os.path.join("dist_temp", "3", "azure-core-1.29.4")
134
134
  assert os.path.exists("dist_temp/3/azure-core-1.29.4.tar.gz") is False
135
135
 
136
136
  def test_get_source_pip_whl(init_package_info):
@@ -147,7 +147,7 @@ def test_get_source_pip_whl(init_package_info):
147
147
  package.prefer_source_distribution = False
148
148
  get_source.get_source(sys.executable, package, 4)
149
149
  assert os.path.exists("dist_temp/4/azure_common-1.1.28")
150
- assert package.path.source_folder == "dist_temp\\4\\azure_common-1.1.28"
150
+ assert package.path.source_folder == os.path.join("dist_temp", "4", "azure_common-1.1.28")
151
151
  assert os.path.exists("dist_temp/4/azure_common-1.1.28-py2.py3-none-any.whl") is False
152
152
 
153
153
  def test_get_source_pip_zip(init_package_info):
@@ -164,7 +164,7 @@ def test_get_source_pip_zip(init_package_info):
164
164
  package.prefer_source_distribution = True
165
165
  get_source.get_source(sys.executable, package, 5)
166
166
  assert os.path.exists("dist_temp/5/azure-common-1.1.28")
167
- assert package.path.source_folder == "dist_temp\\5\\azure-common-1.1.28"
167
+ assert package.path.source_folder == os.path.join("dist_temp", "5", "azure-common-1.1.28")
168
168
  assert os.path.exists("dist_temp/5/azure-common-1.1.28.zip") is False
169
169
 
170
170
  def test_get_source_zip_file_at_position_0(init_package_info):
@@ -181,5 +181,5 @@ def test_get_source_zip_file_at_position_0(init_package_info):
181
181
  package.prefer_source_distribution = True
182
182
  get_source.get_source(sys.executable, package, 6)
183
183
  assert os.path.exists("dist_temp/6/azure_template-0.1.0b3942895")
184
- assert package.path.source_folder == "dist_temp\\6\\azure_template-0.1.0b3942895"
184
+ assert package.path.source_folder == os.path.join("dist_temp", "6", "azure_template-0.1.0b3942895")
185
185
  assert os.path.exists("dist_temp/6/azure_template-0.1.0b3942895.tar.gz") is False
@@ -48,7 +48,7 @@ def test_load_command_params():
48
48
  def test_load_file_params():
49
49
  # get absolute path of test json
50
50
  path = os.path.dirname(os.path.abspath(__file__))
51
- relative_path = "data\\params\\test.json"
51
+ relative_path = os.path.join("data", "params", "test.json")
52
52
  full_path = os.path.join(path, relative_path)
53
53
  json_info = load_file_params(full_path)
54
54
 
@@ -7,18 +7,19 @@ import sphinx.cmd.build
7
7
  from py2docfx.convert_prepare.sphinx_caller import run_apidoc, run_converter
8
8
  from py2docfx.convert_prepare.package_info import PackageInfo
9
9
  from py2docfx.convert_prepare.source import Source
10
+ from py2docfx.convert_prepare.tests.utils import prepare_log_folder
10
11
 
11
12
  package_info = PackageInfo()
12
13
 
13
14
  def init_paths(tmp_path):
14
15
  rst_path = os.path.join(tmp_path, "test_rst")
15
16
 
16
- source_code_path = os.path.abspath("convert_prepare\\tests\\data\\sphinx_caller\\test_source_code")
17
+ source_code_path = os.path.abspath("convert_prepare/tests/data/sphinx_caller/test_source_code")
17
18
  destination = os.path.join(tmp_path, "test_source_code")
18
19
  shutil.copytree(source_code_path, destination)
19
20
 
20
21
  package_info.code_location = destination
21
- package_info.exclude_path = ["testcode\\exclude\\*"]
22
+ package_info.exclude_path = ["testcode/exclude/*"]
22
23
  package_info.path = Source(source_folder=destination, yaml_output_folder=rst_path, package_name="testcode")
23
24
  package_info.build_in_subpackage = False
24
25
  package_info.name = 'testcode'
@@ -36,11 +37,12 @@ def test_run_apidoc(tmp_path):
36
37
 
37
38
 
38
39
  def test_run_converter(tmp_path):
40
+ prepare_log_folder()
39
41
  rst_path, source_code_path = init_paths(tmp_path)
40
42
  run_apidoc(rst_path, source_code_path, package_info.get_exluded_command(), package_info)
41
43
 
42
44
  # prepare conf.py, index.rst and docfx_yaml
43
- conf_path = os.path.abspath("convert_prepare\\tests\\data\\sphinx_caller\\conf.py")
45
+ conf_path = os.path.abspath("convert_prepare/tests/data/sphinx_caller/conf.py")
44
46
  destination = os.path.join(rst_path)
45
47
  shutil.copy(conf_path, destination)
46
48
  docfx_yaml_path = os.path.abspath("docfx_yaml")
@@ -0,0 +1,11 @@
1
+ import os
2
+ import shutil
3
+
4
+ def prepare_log_folder() -> None:
5
+ if not os.path.exists('logs'):
6
+ os.makedirs('logs')
7
+ os.makedirs(os.path.join('logs', 'package_logs'))
8
+ else:
9
+ shutil.rmtree('logs')
10
+ os.makedirs('logs')
11
+ os.makedirs(os.path.join('logs', 'package_logs'))
@@ -18,6 +18,7 @@ from convert_class import convert_class
18
18
  from convert_enum import convert_enum
19
19
  from convert_module import convert_module
20
20
  from convert_package import convert_package
21
+ from logger import get_package_logger
21
22
 
22
23
  INITPY = '__init__.py'
23
24
  MODULE = 'module'
@@ -91,6 +92,7 @@ def add_isrequired_if_needed(obj, key: str):
91
92
  args['isRequired'] = True
92
93
 
93
94
  def get_merged_params(obj, info_field_data, key: str):
95
+ docfx_logger = get_package_logger(__name__)
94
96
  merged_params = []
95
97
  arg_params = obj.get('syntax', {}).get(key, [])
96
98
  if key in info_field_data[obj['uid']]:
@@ -98,7 +100,8 @@ def get_merged_params(obj, info_field_data, key: str):
98
100
  key, [])
99
101
  if arg_params and doc_params:
100
102
  if len(arg_params) - len(doc_params) > 0:
101
- print(f'Documented params don\'t match size of params:{obj["uid"]}') # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
103
+ msg = f'Documented params don\'t match size of params:{obj["uid"]}' # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
104
+ docfx_logger.warning(msg)
102
105
  doc_params = remove_params_without_id(doc_params)
103
106
  merged_params = merge_params(arg_params, doc_params)
104
107
  else:
@@ -182,6 +185,8 @@ def build_finished(app, exception):
182
185
  """
183
186
  Output YAML on the file system.
184
187
  """
188
+
189
+ docfx_logger = get_package_logger(__name__)
185
190
 
186
191
  def convert_class_to_enum_if_needed(obj):
187
192
  if (obj.get('inheritance'), None):
@@ -299,7 +304,8 @@ def build_finished(app, exception):
299
304
  mime = "PythonModule"
300
305
 
301
306
  if transformed_obj == None:
302
- print(f"Unknown yml, uid is: {uid}")
307
+ msg = f"Unknown yml, uid is: {uid}"
308
+ docfx_logger.warning(msg)
303
309
  else:
304
310
  # save file
305
311
  common.write_yaml(transformed_obj, out_file, mime)
@@ -307,7 +313,9 @@ def build_finished(app, exception):
307
313
 
308
314
  # Write TOC, the toc should include at least 1
309
315
  if len(toc_yaml) == 0:
310
- raise RuntimeError("No documentation for this module.")
316
+ msg = "No documentation for this module."
317
+ docfx_logger.error(msg)
318
+ raise RuntimeError()
311
319
 
312
320
  toc_file = os.path.join(normalized_outdir, 'toc.yml')
313
321
  with open(toc_file, 'w') as writable:
@@ -3,9 +3,10 @@ import os
3
3
  import yaml as yml
4
4
  from functools import partial
5
5
  from common import remove_empty_values, parse_references, convert_member, convert_parameter, convert_types, get_constructor_and_variables, convert_variable
6
-
6
+ from logger import get_package_logger
7
7
 
8
8
  def convert_class(obj):
9
+ docfx_logger = get_package_logger(__name__)
9
10
  record = {}
10
11
  reference_mapping = {}
11
12
  old_class_object = {}
@@ -48,5 +49,6 @@ def convert_class(obj):
48
49
  new_class_object['methods'] = list(map(convert_member_partial, methods))
49
50
  new_class_object['attributes'] = list(map(convert_member_partial, attributes))
50
51
 
51
- print("class: " + new_class_object['uid']) # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
52
+ msg = "class: " + new_class_object['uid'] # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
53
+ docfx_logger.info(msg)
52
54
  return remove_empty_values(new_class_object)
@@ -1,12 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  from common import remove_empty_values, parse_references, get_constructor_and_variables, convert_variable
3
-
3
+ from logger import get_package_logger
4
4
 
5
5
  def convert_enum(obj):
6
6
  ''' Convert the Enum yaml object to a SDP style object.
7
7
 
8
8
  :param obj: The object is generated from the Enum yaml file
9
9
  '''
10
+ docfx_logger = get_package_logger(__name__)
10
11
  record = {}
11
12
  reference_mapping = {}
12
13
  old_enum_object = {}
@@ -43,7 +44,8 @@ def convert_enum(obj):
43
44
 
44
45
  new_enum_object['fields'] = list(map(convert_fields, fields))
45
46
 
46
- print("enum: " + new_enum_object['uid']) # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
47
+ msg = "enum: " + new_enum_object['uid'] # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
48
+ docfx_logger.info(msg)
47
49
  return remove_empty_values(new_enum_object)
48
50
 
49
51
 
@@ -3,9 +3,10 @@ import os
3
3
  import yaml as yml
4
4
  from functools import partial
5
5
  from common import remove_empty_values, parse_references, convert_member
6
-
6
+ from logger import get_package_logger
7
7
 
8
8
  def convert_module(obj, uid_type_mapping):
9
+ docfx_logger = get_package_logger(__name__)
9
10
  record = {}
10
11
  reference_mapping = {}
11
12
  old_object = {}
@@ -54,5 +55,6 @@ def convert_module(obj, uid_type_mapping):
54
55
  filter(lambda x: uid_type_mapping.get(x, None) == 'enum', children))
55
56
 
56
57
  toreturn = remove_empty_values(new_object)
57
- print("module: " + toreturn['uid']) # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
58
+ msg = "module: " + toreturn['uid'] # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
59
+ docfx_logger.info(msg)
58
60
  return toreturn
@@ -3,9 +3,10 @@ import os
3
3
  import yaml as yml
4
4
  from functools import partial
5
5
  from common import remove_empty_values, parse_references, convert_member
6
-
6
+ from logger import get_package_logger
7
7
 
8
8
  def convert_package(obj, uid_type_mapping):
9
+ docfx_logger = get_package_logger(__name__)
9
10
  record = {}
10
11
  reference_mapping = {}
11
12
  old_object = {}
@@ -49,5 +50,6 @@ def convert_package(obj, uid_type_mapping):
49
50
  filter(lambda x: uid_type_mapping.get(x, None) == 'enum', children))
50
51
 
51
52
  toreturn = remove_empty_values(new_object)
52
- print("package: " + toreturn['uid']) # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
53
+ msg = "package: " + toreturn['uid'] # CodeQL: [py/clear-text-logging-sensitive-data] There is no sensitive data in the print statement.
54
+ docfx_logger.info(msg)
53
55
  return toreturn
@@ -0,0 +1,68 @@
1
+ import os
2
+ import logging
3
+ import subprocess
4
+
5
+ def get_log_level():
6
+ if os.environ.get('LOG_LEVEL') == 'WARNING':
7
+ return logging.WARNING
8
+ elif os.environ.get('LOG_LEVEL') == 'INFO':
9
+ return logging.INFO
10
+
11
+ return logging.ERROR
12
+
13
+ def setup_log_handlers(logger, log_file_name):
14
+ file_handler = logging.FileHandler(filename=log_file_name, mode='a')
15
+ file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
16
+
17
+ stream_handeler = logging.StreamHandler()
18
+ stream_handeler.setLevel(get_log_level())
19
+
20
+ logger.addHandler(file_handler)
21
+ logger.addHandler(stream_handeler)
22
+
23
+ return logger
24
+
25
+ def get_logger(logger_name: str):
26
+ file_name = os.path.join("logs", "log.txt")
27
+
28
+ file_logger = logging.getLogger(logger_name)
29
+ file_logger.setLevel(logging.INFO)
30
+
31
+ if file_logger.hasHandlers():
32
+ return file_logger
33
+
34
+ file_logger = setup_log_handlers(file_logger, file_name)
35
+
36
+ return file_logger
37
+
38
+ def get_package_logger(logger_name:str):
39
+ package_name = os.environ.get('PROCESSING_PACKAGE_NAME')
40
+ file_name = os.path.join("logs", "package_logs", f"{package_name}.txt")
41
+
42
+ file_logger = logging.getLogger(logger_name)
43
+ file_logger.setLevel(logging.INFO)
44
+
45
+ if file_logger.hasHandlers():
46
+ return file_logger
47
+
48
+ file_logger = setup_log_handlers(file_logger, file_name)
49
+
50
+ return file_logger
51
+
52
+ def log_subprocess_ouput(subprocess_out: subprocess.CompletedProcess, logger: logging.Logger):
53
+ if subprocess_out.stdout:
54
+ logger.info(subprocess_out.stdout)
55
+ if subprocess_out.stderr:
56
+ msgs = subprocess_out.stderr.split('\n')
57
+ for msg in msgs:
58
+ if msg is None or msg == "":
59
+ continue
60
+ if "WARNING:" in msg:
61
+ logger.warning(msg)
62
+ elif "ERROR:" in msg:
63
+ logger.error(msg)
64
+ else:
65
+ logger.info(msg)
66
+ if subprocess_out.returncode != 0:
67
+ logger.error(f"Subprocess failed with return code {subprocess_out.returncode}")
68
+ raise RuntimeError()
@@ -11,6 +11,7 @@ import re
11
11
  from utils import transform_string
12
12
  from enum import EnumMeta
13
13
  from importlib import import_module
14
+ from logger import get_package_logger
14
15
 
15
16
  PACKAGE = 'package'
16
17
  METHOD = 'method'
@@ -181,7 +182,7 @@ def _create_datam(app, cls, module, name, _type, obj, lines=None):
181
182
  """
182
183
  Build the data structure for an autodoc class
183
184
  """
184
-
185
+ docfx_logger = get_package_logger(__name__)
185
186
  if lines is None:
186
187
  lines = []
187
188
  short_name = name.split('.')[-1]
@@ -204,7 +205,8 @@ def _create_datam(app, cls, module, name, _type, obj, lines=None):
204
205
  args = removePositonalOnlyFromArgs(args, positional_only_params)
205
206
 
206
207
  except Exception as e:
207
- print("Can't get argspec for {}: {}. Exception: {}".format(type(obj), name, e))
208
+ msg = "Can't get argspec for {}: {}. Exception: {}".format(type(obj), name, e)
209
+ docfx_logger.warning(msg)
208
210
 
209
211
  datam = {
210
212
  'module': module if module else None,
@@ -388,7 +390,7 @@ def process_docstring(app, _type, name, obj, options, lines):
388
390
  This function takes the docstring and indexes it into memory.
389
391
  """
390
392
  # Use exception as class
391
-
393
+ docfx_logger = get_package_logger(__name__)
392
394
  def check_convert_package_type(obj, _type):
393
395
  if _type == MODULE:
394
396
  filename = getattr(obj, '__file__', None)
@@ -409,7 +411,7 @@ def process_docstring(app, _type, name, obj, options, lines):
409
411
  cls, module = _get_cls_module(_type, name)
410
412
 
411
413
  if _type != PACKAGE and not module:
412
- print('Unknown Type: %s' % _type)
414
+ docfx_logger.warning('Unknown Type: %s' % _type)
413
415
  return None
414
416
 
415
417
  if app.config.__contains__('autoclass_content') and app.config.autoclass_content.lower() == 'both':
@@ -11,10 +11,10 @@ import return_type_utils
11
11
  from docutils import nodes
12
12
  from sphinx import addnodes
13
13
  from sphinx.addnodes import desc_signature,desc_content
14
- from sphinx.util import logging
15
14
  from sphinx.util.docfields import _is_single_paragraph
16
15
  from collections import OrderedDict
17
16
  from nodes import remarks
17
+ from logger import get_package_logger
18
18
 
19
19
  TYPE_SEP_PATTERN = '(\[|\]|, |\(|\))'
20
20
  PARAMETER_NAME = "[*][*](.*?)[*][*]"
@@ -26,10 +26,9 @@ ATTRIBUTE_TYPE = 'attribute'
26
26
  types_contain_constructor = {CLASS_TYPE, EXCEPTION_TYPE}
27
27
  types_contain_attributes = {CLASS_TYPE, EXCEPTION_TYPE}
28
28
 
29
- logger = logging.getLogger(__name__)
30
-
31
29
  def translator(app, docname, doctree):
32
30
 
31
+ docfx_logger = get_package_logger(__name__)
33
32
  transform_node = app.docfx_transform_node
34
33
 
35
34
  class_obj_cache = app.env.domains['py'].objects
@@ -58,16 +57,15 @@ def translator(app, docname, doctree):
58
57
  def _get_uid_and_type_from_desc(node):
59
58
  assert node.tagname == 'desc'
60
59
  if node.attributes['domain'] != 'py':
61
- print(
62
- 'Skipping Domain Object (%s)' % node.attributes['domain']
63
- )
60
+ msg = str('Skipping Domain Object (%s)' % node.attributes['domain'])
61
+ docfx_logger.info(msg)
64
62
  return None, None
65
63
 
66
64
  try:
67
65
  module = node[0].attributes['module']
68
66
  full_name = node[0].attributes['fullname']
69
67
  except KeyError as e:
70
- logger.error("There maybe some syntax error in docstring near: " + node.astext())
68
+ docfx_logger.error("There maybe some syntax error in docstring near: " + node.astext())
71
69
  raise e
72
70
 
73
71
  uid = '{module}.{full_name}'.format(module=module, full_name=full_name)