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.
- py2docfx/__main__.py +77 -22
- py2docfx/convert_prepare/environment.py +59 -19
- py2docfx/convert_prepare/generate_document.py +12 -5
- py2docfx/convert_prepare/get_source.py +5 -1
- py2docfx/convert_prepare/git.py +24 -20
- py2docfx/convert_prepare/package_info.py +15 -9
- py2docfx/convert_prepare/pip_utils.py +29 -8
- py2docfx/convert_prepare/post_process/merge_toc.py +5 -1
- py2docfx/convert_prepare/sphinx_caller.py +31 -14
- py2docfx/convert_prepare/tests/test_generate_document.py +6 -4
- py2docfx/convert_prepare/tests/test_get_source.py +6 -6
- py2docfx/convert_prepare/tests/test_params.py +1 -1
- py2docfx/convert_prepare/tests/test_sphinx_caller.py +5 -3
- py2docfx/convert_prepare/tests/utils.py +11 -0
- py2docfx/docfx_yaml/build_finished.py +11 -3
- py2docfx/docfx_yaml/convert_class.py +4 -2
- py2docfx/docfx_yaml/convert_enum.py +4 -2
- py2docfx/docfx_yaml/convert_module.py +4 -2
- py2docfx/docfx_yaml/convert_package.py +4 -2
- py2docfx/docfx_yaml/logger.py +68 -0
- py2docfx/docfx_yaml/process_doctree.py +6 -4
- py2docfx/docfx_yaml/translator.py +5 -7
- py2docfx/docfx_yaml/writer.py +10 -4
- py2docfx/docfx_yaml/yaml_builder.py +0 -1
- py2docfx/venv/basevenv/Lib/site-packages/_distutils_hack/__init__.py +2 -3
- py2docfx/venv/basevenv/Lib/site-packages/packaging/__init__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_elffile.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/packaging/_manylinux.py +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/basevenv/Lib/site-packages/packaging/markers.py +15 -9
- py2docfx/venv/basevenv/Lib/site-packages/packaging/metadata.py +83 -24
- py2docfx/venv/basevenv/Lib/site-packages/packaging/specifiers.py +19 -8
- py2docfx/venv/basevenv/Lib/site-packages/packaging/tags.py +78 -29
- py2docfx/venv/basevenv/Lib/site-packages/packaging/utils.py +33 -44
- py2docfx/venv/basevenv/Lib/site-packages/packaging/version.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +27 -32
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/__init__.py +7 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py +1 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py +5 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py +2 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py +53 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/archive_util.py +6 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/build_meta.py +25 -19
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/__init__.py +9 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py +3 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +43 -84
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py +2 -9
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py +15 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_py.py +26 -30
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/develop.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/dist_info.py +3 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/easy_install.py +57 -80
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/egg_info.py +32 -32
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_lib.py +10 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/rotate.py +6 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/saveopts.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/sdist.py +11 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/setopt.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/expand.py +22 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/pyprojecttoml.py +12 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/depends.py +26 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/discovery.py +21 -14
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +51 -47
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/errors.py +21 -26
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/extension.py +18 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/glob.py +35 -15
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/installer.py +6 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/launch.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/logging.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/modified.py +16 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/monkey.py +5 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +35 -24
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/namespaces.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/package_index.py +42 -43
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/sandbox.py +19 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +171 -76
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/unicode_utils.py +3 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/warnings.py +5 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/wheel.py +4 -4
- py2docfx/venv/basevenv/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
- py2docfx/venv/basevenv/Lib/site-packages/wheel/bdist_wheel.py +17 -2
- py2docfx/venv/basevenv/Lib/site-packages/wheel/cli/convert.py +279 -220
- py2docfx/venv/basevenv/Lib/site-packages/wheel/util.py +0 -9
- py2docfx/venv/venv1/Lib/site-packages/_distutils_hack/__init__.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_enum_meta.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_pipeline_client_async.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/credentials.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/exceptions.py +13 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/messaging.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/paging.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/__init__.py +16 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base.py +15 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_base_async.py +20 -10
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/_tools.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication.py +55 -19
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_authentication_async.py +46 -15
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_custom_hook.py +8 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_distributed_tracing.py +9 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_redirect_async.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry.py +27 -8
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_retry_async.py +6 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_sensitive_header_cleanup_policy.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_universal.py +6 -10
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/policies/_utils.py +101 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_aiohttp.py +9 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_base_async.py +7 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_asyncio.py +0 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_basic.py +11 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/pipeline/transport/_requests_trio.py +11 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_async_poller.py +5 -2
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/_poller.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/async_base_polling.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/polling/base_polling.py +47 -16
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_helpers.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_http_response_impl.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/rest/_requests_basic.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/serialization.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/settings.py +15 -3
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/_abstract_span.py +15 -5
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/common.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator.py +12 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/decorator_async.py +24 -4
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/__init__.py +119 -110
- py2docfx/venv/venv1/Lib/site-packages/azure/core/tracing/ext/opencensus_span/_version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/azure/core/utils/_pipeline_transport_rest_shared_async.py +10 -1
- py2docfx/venv/venv1/Lib/site-packages/google/api/client_pb2.py +41 -39
- py2docfx/venv/venv1/Lib/site-packages/google/api/error_reason_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/api/httpbody_pb2.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/google/api/metric_pb2.py +17 -11
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/client_options.py +17 -13
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/protobuf_helpers.py +1 -3
- py2docfx/venv/venv1/Lib/site-packages/google/api_core/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/_default.py +4 -0
- py2docfx/venv/venv1/Lib/site-packages/google/auth/compute_engine/_metadata.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/iam.py +25 -8
- py2docfx/venv/venv1/Lib/site-packages/google/auth/impersonated_credentials.py +34 -16
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/_requests_base.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/google/auth/transport/requests.py +2 -3
- py2docfx/venv/venv1/Lib/site-packages/google/auth/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/_client.py +10 -2
- py2docfx/venv/venv1/Lib/site-packages/google/oauth2/service_account.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/__init__.py +3 -2
- py2docfx/venv/venv1/Lib/site-packages/jwt/algorithms.py +31 -16
- py2docfx/venv/venv1/Lib/site-packages/jwt/api_jws.py +19 -8
- py2docfx/venv/venv1/Lib/site-packages/jwt/api_jwt.py +75 -19
- py2docfx/venv/venv1/Lib/site-packages/jwt/exceptions.py +8 -0
- py2docfx/venv/venv1/Lib/site-packages/jwt/help.py +4 -1
- py2docfx/venv/venv1/Lib/site-packages/jwt/jwks_client.py +4 -2
- py2docfx/venv/venv1/Lib/site-packages/jwt/utils.py +7 -10
- py2docfx/venv/venv1/Lib/site-packages/msal/application.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +27 -32
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py +7 -7
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/proto/enums.py +3 -1
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/collections/repeated.py +7 -2
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/compat.py +18 -21
- py2docfx/venv/venv1/Lib/site-packages/proto/marshal/rules/message.py +7 -3
- py2docfx/venv/venv1/Lib/site-packages/proto/message.py +6 -35
- py2docfx/venv/venv1/Lib/site-packages/proto/version.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/__init__.py +7 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/py38.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dir_util.py +3 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +22 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py +1 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py +5 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py +2 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py +53 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +1 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/__init__.py +145 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py +759 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +15 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +83 -24
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +19 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +78 -29
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +33 -44
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/packaging/version.py +26 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/archive_util.py +6 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/build_meta.py +25 -19
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/__init__.py +9 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py +3 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py +27 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +43 -84
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py +2 -9
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py +15 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_py.py +26 -30
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/develop.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/dist_info.py +3 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/easy_install.py +57 -80
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/editable_wheel.py +21 -23
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/egg_info.py +32 -32
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install.py +31 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_egg_info.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_lib.py +10 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/install_scripts.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/rotate.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/saveopts.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/sdist.py +11 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/setopt.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +19 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/expand.py +22 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/pyprojecttoml.py +12 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/config/setupcfg.py +39 -47
- py2docfx/venv/venv1/Lib/site-packages/setuptools/depends.py +26 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/discovery.py +21 -14
- py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +51 -47
- py2docfx/venv/venv1/Lib/site-packages/setuptools/errors.py +21 -26
- py2docfx/venv/venv1/Lib/site-packages/setuptools/extension.py +18 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/glob.py +35 -15
- py2docfx/venv/venv1/Lib/site-packages/setuptools/installer.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/launch.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/logging.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/modified.py +16 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/monkey.py +5 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +35 -24
- py2docfx/venv/venv1/Lib/site-packages/setuptools/namespaces.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/package_index.py +42 -43
- py2docfx/venv/venv1/Lib/site-packages/setuptools/sandbox.py +19 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +5 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +7 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_expand.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +21 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +12 -16
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +10 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +7 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +10 -33
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_py.py +6 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +171 -76
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +11 -13
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +44 -5
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +32 -26
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py +10 -6
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +15 -15
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_glob.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_logging.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_manifest.py +2 -8
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_packageindex.py +6 -17
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_setuptools.py +4 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_shutil_wrapper.py +23 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_wheel.py +29 -20
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/unicode_utils.py +3 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/warnings.py +5 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/wheel.py +4 -4
- py2docfx/venv/venv1/Lib/site-packages/wheel/__init__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/wheel/_bdist_wheel.py +9 -0
- py2docfx/venv/venv1/Lib/site-packages/wheel/bdist_wheel.py +17 -2
- py2docfx/venv/venv1/Lib/site-packages/wheel/cli/convert.py +279 -220
- py2docfx/venv/venv1/Lib/site-packages/wheel/util.py +0 -9
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/METADATA +1 -1
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/RECORD +327 -385
- {py2docfx-0.1.9.dev1897607.dist-info → py2docfx-0.1.9.dev1926139.dist-info}/WHEEL +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +0 -36
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +0 -168
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +0 -210
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +0 -38
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +0 -171
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +0 -11
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +0 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +0 -81
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +0 -95
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +0 -194
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +0 -106
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +0 -56
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +0 -18
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +0 -10
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +0 -104
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +0 -43
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +0 -47
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +0 -117
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +0 -242
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +0 -89
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +0 -65
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +0 -97
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +0 -145
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +0 -241
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +0 -164
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +0 -32
- /py2docfx/convert_prepare/conf_templates/{master_doc.rst_t → root_doc.rst_t} +0 -0
- {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
|
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
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
62
|
-
|
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
|
-
|
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)
|