py2docfx 0.1.12rc2002542__py3-none-any.whl → 0.1.13.dev2012165__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- py2docfx/docfx_yaml/tests/roots/test-writer-uri/code_with_uri.py +7 -0
- py2docfx/docfx_yaml/tests/test_writer_uri.py +4 -0
- py2docfx/docfx_yaml/writer.py +13 -1
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +11 -6
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +58 -0
- py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +7 -3
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +7 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +2 -12
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +11 -7
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +6 -1
- py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +11 -6
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +58 -0
- py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +7 -3
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +7 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +2 -12
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +11 -7
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +6 -1
- {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dev2012165.dist-info}/METADATA +1 -1
- {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dev2012165.dist-info}/RECORD +28 -28
- {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dev2012165.dist-info}/WHEEL +0 -0
- {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dev2012165.dist-info}/top_level.txt +0 -0
| @@ -20,6 +20,7 @@ def test_http_link_in_summary_should_not_nest_parenthesis(app): | |
| 20 20 | 
             
                class_summary_result = transform_node(app, doctree[1][1][0])
         | 
| 21 21 | 
             
                method1_summary_result = transform_node(app, doctree[1][1][2][1])
         | 
| 22 22 | 
             
                method2_summary_result = transform_node(app, doctree[1][1][4][1])
         | 
| 23 | 
            +
                method3_summary_result = transform_node(app, doctree[1][1][6][1])
         | 
| 23 24 |  | 
| 24 25 | 
             
                # Assert
         | 
| 25 26 | 
             
                # Shouldn't see something like [title]((link))
         | 
| @@ -28,7 +29,10 @@ def test_http_link_in_summary_should_not_nest_parenthesis(app): | |
| 28 29 | 
             
                                           "We should not generate nested parenthesis causing docs validation warnings\n")
         | 
| 29 30 | 
             
                method2_summary_expected = ("\n\n   This isn't a content issue link ([https://www.microsoft.com](https://www.microsoft.com))\n   "
         | 
| 30 31 | 
             
                                            "Should expect a transformed Markdown link.\n")
         | 
| 32 | 
            +
                method3_summary_expected = ("\n\n   This is a bare URL that shouldn't be transformed into a link\n   "
         | 
| 33 | 
            +
                                            "because it's in the exclusion list: `https://management.azure.com`\n")
         | 
| 31 34 | 
             
                assert(class_summary_expected == class_summary_result)
         | 
| 32 35 | 
             
                assert(method1_summary_expected == method1_summary_result)
         | 
| 33 36 | 
             
                assert(method2_summary_expected == method2_summary_result)
         | 
| 37 | 
            +
                assert(method3_summary_expected == method3_summary_result)
         | 
| 34 38 |  | 
    
        py2docfx/docfx_yaml/writer.py
    CHANGED
    
    | @@ -184,6 +184,15 @@ class MarkdownTranslator(nodes.NodeVisitor): | |
| 184 184 | 
             
                sectionchars = '*=-~"+`'
         | 
| 185 185 | 
             
                xref_template = "<xref:{0}>"
         | 
| 186 186 |  | 
| 187 | 
            +
                # URLs that shouldn't be automatically rendered as hyperlinks if found bare. Included because they appear
         | 
| 188 | 
            +
                # frequently, get flagged by the broken link validator and/or there's no value to the user in
         | 
| 189 | 
            +
                # making them clickable links.
         | 
| 190 | 
            +
                urls_that_shouldnt_be_rendered_as_links = {
         | 
| 191 | 
            +
                    "https://management.azure.com",
         | 
| 192 | 
            +
                    "https://management.chinacloudapi.cn",
         | 
| 193 | 
            +
                    "https://management.usgovcloudapi.net"
         | 
| 194 | 
            +
                    }
         | 
| 195 | 
            +
             | 
| 187 196 | 
             
                def __init__(self, document, builder):
         | 
| 188 197 | 
             
                    self.invdata = []
         | 
| 189 198 | 
             
                    nodes.NodeVisitor.__init__(self, document)
         | 
| @@ -927,7 +936,10 @@ class MarkdownTranslator(nodes.NodeVisitor): | |
| 927 936 | 
             
                                        match_content_issue_pattern = True
         | 
| 928 937 | 
             
                                        ref_string = node.attributes["refuri"]
         | 
| 929 938 | 
             
                            if not match_content_issue_pattern:
         | 
| 930 | 
            -
                                 | 
| 939 | 
            +
                                if inner_text == node.attributes['refuri'] and inner_text in cls.urls_that_shouldnt_be_rendered_as_links:
         | 
| 940 | 
            +
                                    ref_string = f'`{inner_text}`'
         | 
| 941 | 
            +
                                else:
         | 
| 942 | 
            +
                                    ref_string = '[{}]({})'.format(node.astext(), node.attributes['refuri'])
         | 
| 931 943 | 
             
                        else:
         | 
| 932 944 | 
             
                            # only use id in class and func refuri if its id exists
         | 
| 933 945 | 
             
                            # otherwise, remove '.html#' in refuri
         | 
| @@ -708,14 +708,19 @@ class WorkingSet: | |
| 708 708 | 
             
                    If there is no active distribution for the requested project, ``None``
         | 
| 709 709 | 
             
                    is returned.
         | 
| 710 710 | 
             
                    """
         | 
| 711 | 
            -
                    dist =  | 
| 711 | 
            +
                    dist: Distribution | None = None
         | 
| 712 712 |  | 
| 713 | 
            -
                     | 
| 714 | 
            -
                         | 
| 713 | 
            +
                    candidates = (
         | 
| 714 | 
            +
                        req.key,
         | 
| 715 | 
            +
                        self.normalized_to_canonical_keys.get(req.key),
         | 
| 716 | 
            +
                        safe_name(req.key).replace(".", "-"),
         | 
| 717 | 
            +
                    )
         | 
| 715 718 |  | 
| 716 | 
            -
             | 
| 717 | 
            -
             | 
| 718 | 
            -
             | 
| 719 | 
            +
                    for candidate in filter(None, candidates):
         | 
| 720 | 
            +
                        dist = self.by_key.get(candidate)
         | 
| 721 | 
            +
                        if dist:
         | 
| 722 | 
            +
                            req.key = candidate
         | 
| 723 | 
            +
                            break
         | 
| 719 724 |  | 
| 720 725 | 
             
                    if dist is not None and dist not in req:
         | 
| 721 726 | 
             
                        # XXX add more info
         | 
| @@ -2,6 +2,7 @@ from __future__ import annotations | |
| 2 2 |  | 
| 3 3 | 
             
            import builtins
         | 
| 4 4 | 
             
            import datetime
         | 
| 5 | 
            +
            import inspect
         | 
| 5 6 | 
             
            import os
         | 
| 6 7 | 
             
            import plistlib
         | 
| 7 8 | 
             
            import stat
         | 
| @@ -425,3 +426,60 @@ class TestDeepVersionLookupDistutils: | |
| 425 426 | 
             
                    """Ensure path seps are cleaned on backslash path sep systems."""
         | 
| 426 427 | 
             
                    result = pkg_resources.normalize_path(unnormalized)
         | 
| 427 428 | 
             
                    assert result.endswith(expected)
         | 
| 429 | 
            +
             | 
| 430 | 
            +
             | 
| 431 | 
            +
            class TestWorkdirRequire:
         | 
| 432 | 
            +
                def fake_site_packages(self, tmp_path, monkeypatch, dist_files):
         | 
| 433 | 
            +
                    site_packages = tmp_path / "site-packages"
         | 
| 434 | 
            +
                    site_packages.mkdir()
         | 
| 435 | 
            +
                    for file, content in self.FILES.items():
         | 
| 436 | 
            +
                        path = site_packages / file
         | 
| 437 | 
            +
                        path.parent.mkdir(exist_ok=True, parents=True)
         | 
| 438 | 
            +
                        path.write_text(inspect.cleandoc(content), encoding="utf-8")
         | 
| 439 | 
            +
             | 
| 440 | 
            +
                    monkeypatch.setattr(sys, "path", [site_packages])
         | 
| 441 | 
            +
                    return os.fspath(site_packages)
         | 
| 442 | 
            +
             | 
| 443 | 
            +
                FILES = {
         | 
| 444 | 
            +
                    "pkg1_mod-1.2.3.dist-info/METADATA": """
         | 
| 445 | 
            +
                        Metadata-Version: 2.4
         | 
| 446 | 
            +
                        Name: pkg1.mod
         | 
| 447 | 
            +
                        Version: 1.2.3
         | 
| 448 | 
            +
                        """,
         | 
| 449 | 
            +
                    "pkg2.mod-0.42.dist-info/METADATA": """
         | 
| 450 | 
            +
                        Metadata-Version: 2.1
         | 
| 451 | 
            +
                        Name: pkg2.mod
         | 
| 452 | 
            +
                        Version: 0.42
         | 
| 453 | 
            +
                        """,
         | 
| 454 | 
            +
                    "pkg3_mod.egg-info/PKG-INFO": """
         | 
| 455 | 
            +
                        Name: pkg3.mod
         | 
| 456 | 
            +
                        Version: 1.2.3.4
         | 
| 457 | 
            +
                        """,
         | 
| 458 | 
            +
                    "pkg4.mod.egg-info/PKG-INFO": """
         | 
| 459 | 
            +
                        Name: pkg4.mod
         | 
| 460 | 
            +
                        Version: 0.42.1
         | 
| 461 | 
            +
                        """,
         | 
| 462 | 
            +
                }
         | 
| 463 | 
            +
             | 
| 464 | 
            +
                @pytest.mark.parametrize(
         | 
| 465 | 
            +
                    ("version", "requirement"),
         | 
| 466 | 
            +
                    [
         | 
| 467 | 
            +
                        ("1.2.3", "pkg1.mod>=1"),
         | 
| 468 | 
            +
                        ("0.42", "pkg2.mod>=0.4"),
         | 
| 469 | 
            +
                        ("1.2.3.4", "pkg3.mod<=2"),
         | 
| 470 | 
            +
                        ("0.42.1", "pkg4.mod>0.2,<1"),
         | 
| 471 | 
            +
                    ],
         | 
| 472 | 
            +
                )
         | 
| 473 | 
            +
                def test_require_non_normalised_name(
         | 
| 474 | 
            +
                    self, tmp_path, monkeypatch, version, requirement
         | 
| 475 | 
            +
                ):
         | 
| 476 | 
            +
                    # https://github.com/pypa/setuptools/issues/4853
         | 
| 477 | 
            +
                    site_packages = self.fake_site_packages(tmp_path, monkeypatch, self.FILES)
         | 
| 478 | 
            +
                    ws = pkg_resources.WorkingSet([site_packages])
         | 
| 479 | 
            +
             | 
| 480 | 
            +
                    for req in [requirement, requirement.replace(".", "-")]:
         | 
| 481 | 
            +
                        [dist] = ws.require(req)
         | 
| 482 | 
            +
                        assert dist.version == version
         | 
| 483 | 
            +
                        assert os.path.samefile(
         | 
| 484 | 
            +
                            os.path.commonpath([dist.location, site_packages]), site_packages
         | 
| 485 | 
            +
                        )
         | 
| @@ -104,9 +104,13 @@ def parametrize_test_working_set_resolve(*test_list): | |
| 104 104 | 
             
                            )
         | 
| 105 105 | 
             
                        )
         | 
| 106 106 | 
             
                return pytest.mark.parametrize(
         | 
| 107 | 
            -
                     | 
| 108 | 
            -
             | 
| 109 | 
            -
             | 
| 107 | 
            +
                    (
         | 
| 108 | 
            +
                        "installed_dists",
         | 
| 109 | 
            +
                        "installable_dists",
         | 
| 110 | 
            +
                        "requirements",
         | 
| 111 | 
            +
                        "replace_conflicting",
         | 
| 112 | 
            +
                        "resolved_dists_or_exception",
         | 
| 113 | 
            +
                    ),
         | 
| 110 114 | 
             
                    argvalues,
         | 
| 111 115 | 
             
                    ids=idlist,
         | 
| 112 116 | 
             
                )
         | 
| @@ -134,7 +134,13 @@ def filename_component_broken(value: str) -> str: | |
| 134 134 | 
             
            def safer_name(value: str) -> str:
         | 
| 135 135 | 
             
                """Like ``safe_name`` but can be used as filename component for wheel"""
         | 
| 136 136 | 
             
                # See bdist_wheel.safer_name
         | 
| 137 | 
            -
                return  | 
| 137 | 
            +
                return (
         | 
| 138 | 
            +
                    # Per https://packaging.python.org/en/latest/specifications/name-normalization/#name-normalization
         | 
| 139 | 
            +
                    re.sub(r"[-_.]+", "-", safe_name(value))
         | 
| 140 | 
            +
                    .lower()
         | 
| 141 | 
            +
                    # Per https://packaging.python.org/en/latest/specifications/binary-distribution-format/#escaping-and-unicode
         | 
| 142 | 
            +
                    .replace("-", "_")
         | 
| 143 | 
            +
                )
         | 
| 138 144 |  | 
| 139 145 |  | 
| 140 146 | 
             
            def safer_best_effort_version(value: str) -> str:
         | 
| @@ -23,19 +23,13 @@ from packaging import tags, version as _packaging_version | |
| 23 23 | 
             
            from wheel.wheelfile import WheelFile
         | 
| 24 24 |  | 
| 25 25 | 
             
            from .. import Command, __version__, _shutil
         | 
| 26 | 
            +
            from .._normalization import safer_name
         | 
| 26 27 | 
             
            from ..warnings import SetuptoolsDeprecationWarning
         | 
| 27 28 | 
             
            from .egg_info import egg_info as egg_info_cls
         | 
| 28 29 |  | 
| 29 30 | 
             
            from distutils import log
         | 
| 30 31 |  | 
| 31 32 |  | 
| 32 | 
            -
            def safe_name(name: str) -> str:
         | 
| 33 | 
            -
                """Convert an arbitrary string to a standard distribution name
         | 
| 34 | 
            -
                Any runs of non-alphanumeric/. characters are replaced with a single '-'.
         | 
| 35 | 
            -
                """
         | 
| 36 | 
            -
                return re.sub("[^A-Za-z0-9.]+", "-", name)
         | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 33 | 
             
            def safe_version(version: str) -> str:
         | 
| 40 34 | 
             
                """
         | 
| 41 35 | 
             
                Convert an arbitrary string to a standard version string
         | 
| @@ -133,10 +127,6 @@ def get_abi_tag() -> str | None: | |
| 133 127 | 
             
                return abi
         | 
| 134 128 |  | 
| 135 129 |  | 
| 136 | 
            -
            def safer_name(name: str) -> str:
         | 
| 137 | 
            -
                return safe_name(name).replace("-", "_")
         | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 130 | 
             
            def safer_version(version: str) -> str:
         | 
| 141 131 | 
             
                return safe_version(version).replace("-", "_")
         | 
| 142 132 |  | 
| @@ -294,7 +284,7 @@ class bdist_wheel(Command): | |
| 294 284 | 
             
                        raise ValueError(
         | 
| 295 285 | 
             
                            f"`py_limited_api={self.py_limited_api!r}` not supported. "
         | 
| 296 286 | 
             
                            "`Py_LIMITED_API` is currently incompatible with "
         | 
| 297 | 
            -
                             | 
| 287 | 
            +
                            "`Py_GIL_DISABLED`."
         | 
| 298 288 | 
             
                            "See https://github.com/python/cpython/issues/111506."
         | 
| 299 289 | 
             
                        )
         | 
| 300 290 |  | 
| @@ -246,9 +246,9 @@ def test_no_scripts(wheel_paths): | |
| 246 246 |  | 
| 247 247 |  | 
| 248 248 | 
             
            def test_unicode_record(wheel_paths):
         | 
| 249 | 
            -
                path = next(path for path in wheel_paths if " | 
| 249 | 
            +
                path = next(path for path in wheel_paths if "unicode_dist" in path)
         | 
| 250 250 | 
             
                with ZipFile(path) as zf:
         | 
| 251 | 
            -
                    record = zf.read(" | 
| 251 | 
            +
                    record = zf.read("unicode_dist-0.1.dist-info/RECORD")
         | 
| 252 252 |  | 
| 253 253 | 
             
                assert "åäö_日本語.py".encode() in record
         | 
| 254 254 |  | 
| @@ -8,7 +8,7 @@ import pytest | |
| 8 8 | 
             
            from setuptools import Distribution
         | 
| 9 9 | 
             
            from setuptools.dist import check_package_data, check_specifier
         | 
| 10 10 |  | 
| 11 | 
            -
            from .test_easy_install import  | 
| 11 | 
            +
            from .test_easy_install import make_trivial_sdist
         | 
| 12 12 | 
             
            from .test_find_packages import ensure_files
         | 
| 13 13 | 
             
            from .textwrap import DALS
         | 
| 14 14 |  | 
| @@ -25,7 +25,7 @@ def test_dist_fetch_build_egg(tmpdir): | |
| 25 25 | 
             
                def sdist_with_index(distname, version):
         | 
| 26 26 | 
             
                    dist_dir = index.mkdir(distname)
         | 
| 27 27 | 
             
                    dist_sdist = f'{distname}-{version}.tar.gz'
         | 
| 28 | 
            -
                     | 
| 28 | 
            +
                    make_trivial_sdist(str(dist_dir.join(dist_sdist)), distname, version)
         | 
| 29 29 | 
             
                    with dist_dir.join('index.html').open('w') as fp:
         | 
| 30 30 | 
             
                        fp.write(
         | 
| 31 31 | 
             
                            DALS(
         | 
| @@ -188,7 +188,7 @@ class TestWheelCompatibility: | |
| 188 188 | 
             
                    dist_info = next(tmp_path.glob("dir_dist/*.dist-info"))
         | 
| 189 189 |  | 
| 190 190 | 
             
                    assert dist_info.name == wheel_dist_info.name
         | 
| 191 | 
            -
                    assert dist_info.name.startswith(f" | 
| 191 | 
            +
                    assert dist_info.name.startswith(f"my_proj-{version}{suffix}")
         | 
| 192 192 | 
             
                    for file in "METADATA", "entry_points.txt":
         | 
| 193 193 | 
             
                        assert read(dist_info / file) == read(wheel_dist_info / file)
         | 
| 194 194 |  | 
| @@ -26,6 +26,7 @@ import pkg_resources | |
| 26 26 | 
             
            import setuptools.command.easy_install as ei
         | 
| 27 27 | 
             
            from pkg_resources import Distribution as PRDistribution, normalize_path, working_set
         | 
| 28 28 | 
             
            from setuptools import sandbox
         | 
| 29 | 
            +
            from setuptools._normalization import safer_name
         | 
| 29 30 | 
             
            from setuptools.command.easy_install import PthDistributions
         | 
| 30 31 | 
             
            from setuptools.dist import Distribution
         | 
| 31 32 | 
             
            from setuptools.sandbox import run_setup
         | 
| @@ -670,11 +671,11 @@ class TestSetupRequires: | |
| 670 671 |  | 
| 671 672 | 
             
                    with contexts.save_pkg_resources_state():
         | 
| 672 673 | 
             
                        with contexts.tempdir() as temp_dir:
         | 
| 673 | 
            -
                            foobar_1_archive = os.path.join(temp_dir, ' | 
| 674 | 
            +
                            foobar_1_archive = os.path.join(temp_dir, 'foo_bar-0.1.tar.gz')
         | 
| 674 675 | 
             
                            make_nspkg_sdist(foobar_1_archive, 'foo.bar', '0.1')
         | 
| 675 676 | 
             
                            # Now actually go ahead an extract to the temp dir and add the
         | 
| 676 677 | 
             
                            # extracted path to sys.path so foo.bar v0.1 is importable
         | 
| 677 | 
            -
                            foobar_1_dir = os.path.join(temp_dir, ' | 
| 678 | 
            +
                            foobar_1_dir = os.path.join(temp_dir, 'foo_bar-0.1')
         | 
| 678 679 | 
             
                            os.mkdir(foobar_1_dir)
         | 
| 679 680 | 
             
                            with tarfile.open(foobar_1_archive) as tf:
         | 
| 680 681 | 
             
                                tf.extraction_filter = lambda member, path: member
         | 
| @@ -697,7 +698,7 @@ class TestSetupRequires: | |
| 697 698 | 
             
                                        len(foo.__path__) == 2):
         | 
| 698 699 | 
             
                                    print('FAIL')
         | 
| 699 700 |  | 
| 700 | 
            -
                                if ' | 
| 701 | 
            +
                                if 'foo_bar-0.2' not in foo.__path__[0]:
         | 
| 701 702 | 
             
                                    print('FAIL')
         | 
| 702 703 | 
             
                            """
         | 
| 703 704 | 
             
                            )
         | 
| @@ -718,8 +719,8 @@ class TestSetupRequires: | |
| 718 719 | 
             
                                    # Don't even need to install the package, just
         | 
| 719 720 | 
             
                                    # running the setup.py at all is sufficient
         | 
| 720 721 | 
             
                                    run_setup(test_setup_py, ['--name'])
         | 
| 721 | 
            -
                                except pkg_resources.VersionConflict:
         | 
| 722 | 
            -
                                     | 
| 722 | 
            +
                                except pkg_resources.VersionConflict:  # pragma: nocover
         | 
| 723 | 
            +
                                    pytest.fail(
         | 
| 723 724 | 
             
                                        'Installing setup.py requirements caused a VersionConflict'
         | 
| 724 725 | 
             
                                    )
         | 
| 725 726 |  | 
| @@ -1120,6 +1121,8 @@ def make_nspkg_sdist(dist_path, distname, version): | |
| 1120 1121 | 
             
                package with the same name as distname.  The top-level package is
         | 
| 1121 1122 | 
             
                designated a namespace package).
         | 
| 1122 1123 | 
             
                """
         | 
| 1124 | 
            +
                # Assert that the distname contains at least one period
         | 
| 1125 | 
            +
                assert '.' in distname
         | 
| 1123 1126 |  | 
| 1124 1127 | 
             
                parts = distname.split('.')
         | 
| 1125 1128 | 
             
                nspackage = parts[0]
         | 
| @@ -1207,10 +1210,11 @@ def create_setup_requires_package( | |
| 1207 1210 | 
             
                package itself is just 'test_pkg'.
         | 
| 1208 1211 | 
             
                """
         | 
| 1209 1212 |  | 
| 1213 | 
            +
                normalized_distname = safer_name(distname)
         | 
| 1210 1214 | 
             
                test_setup_attrs = {
         | 
| 1211 1215 | 
             
                    'name': 'test_pkg',
         | 
| 1212 1216 | 
             
                    'version': '0.0',
         | 
| 1213 | 
            -
                    'setup_requires': [f'{ | 
| 1217 | 
            +
                    'setup_requires': [f'{normalized_distname}=={version}'],
         | 
| 1214 1218 | 
             
                    'dependency_links': [os.path.abspath(path)],
         | 
| 1215 1219 | 
             
                }
         | 
| 1216 1220 | 
             
                if setup_attrs:
         | 
| @@ -1259,7 +1263,7 @@ def create_setup_requires_package( | |
| 1259 1263 | 
             
                with open(os.path.join(test_pkg, 'setup.py'), 'w', encoding="utf-8") as f:
         | 
| 1260 1264 | 
             
                    f.write(setup_py_template % test_setup_attrs)
         | 
| 1261 1265 |  | 
| 1262 | 
            -
                foobar_path = os.path.join(path, f'{ | 
| 1266 | 
            +
                foobar_path = os.path.join(path, f'{normalized_distname}-{version}.tar.gz')
         | 
| 1263 1267 | 
             
                make_package(foobar_path, distname, version)
         | 
| 1264 1268 |  | 
| 1265 1269 | 
             
                return test_pkg
         | 
| @@ -300,7 +300,12 @@ class TestEggInfo: | |
| 300 300 | 
             
                                    )
         | 
| 301 301 | 
             
                                )
         | 
| 302 302 | 
             
                        return pytest.mark.parametrize(
         | 
| 303 | 
            -
                             | 
| 303 | 
            +
                            (
         | 
| 304 | 
            +
                                "requires",
         | 
| 305 | 
            +
                                "use_setup_cfg",
         | 
| 306 | 
            +
                                "expected_requires",
         | 
| 307 | 
            +
                                "install_cmd_kwargs",
         | 
| 308 | 
            +
                            ),
         | 
| 304 309 | 
             
                            argvalues,
         | 
| 305 310 | 
             
                            ids=idlist,
         | 
| 306 311 | 
             
                        )
         | 
| @@ -708,14 +708,19 @@ class WorkingSet: | |
| 708 708 | 
             
                    If there is no active distribution for the requested project, ``None``
         | 
| 709 709 | 
             
                    is returned.
         | 
| 710 710 | 
             
                    """
         | 
| 711 | 
            -
                    dist =  | 
| 711 | 
            +
                    dist: Distribution | None = None
         | 
| 712 712 |  | 
| 713 | 
            -
                     | 
| 714 | 
            -
                         | 
| 713 | 
            +
                    candidates = (
         | 
| 714 | 
            +
                        req.key,
         | 
| 715 | 
            +
                        self.normalized_to_canonical_keys.get(req.key),
         | 
| 716 | 
            +
                        safe_name(req.key).replace(".", "-"),
         | 
| 717 | 
            +
                    )
         | 
| 715 718 |  | 
| 716 | 
            -
             | 
| 717 | 
            -
             | 
| 718 | 
            -
             | 
| 719 | 
            +
                    for candidate in filter(None, candidates):
         | 
| 720 | 
            +
                        dist = self.by_key.get(candidate)
         | 
| 721 | 
            +
                        if dist:
         | 
| 722 | 
            +
                            req.key = candidate
         | 
| 723 | 
            +
                            break
         | 
| 719 724 |  | 
| 720 725 | 
             
                    if dist is not None and dist not in req:
         | 
| 721 726 | 
             
                        # XXX add more info
         | 
| @@ -2,6 +2,7 @@ from __future__ import annotations | |
| 2 2 |  | 
| 3 3 | 
             
            import builtins
         | 
| 4 4 | 
             
            import datetime
         | 
| 5 | 
            +
            import inspect
         | 
| 5 6 | 
             
            import os
         | 
| 6 7 | 
             
            import plistlib
         | 
| 7 8 | 
             
            import stat
         | 
| @@ -425,3 +426,60 @@ class TestDeepVersionLookupDistutils: | |
| 425 426 | 
             
                    """Ensure path seps are cleaned on backslash path sep systems."""
         | 
| 426 427 | 
             
                    result = pkg_resources.normalize_path(unnormalized)
         | 
| 427 428 | 
             
                    assert result.endswith(expected)
         | 
| 429 | 
            +
             | 
| 430 | 
            +
             | 
| 431 | 
            +
            class TestWorkdirRequire:
         | 
| 432 | 
            +
                def fake_site_packages(self, tmp_path, monkeypatch, dist_files):
         | 
| 433 | 
            +
                    site_packages = tmp_path / "site-packages"
         | 
| 434 | 
            +
                    site_packages.mkdir()
         | 
| 435 | 
            +
                    for file, content in self.FILES.items():
         | 
| 436 | 
            +
                        path = site_packages / file
         | 
| 437 | 
            +
                        path.parent.mkdir(exist_ok=True, parents=True)
         | 
| 438 | 
            +
                        path.write_text(inspect.cleandoc(content), encoding="utf-8")
         | 
| 439 | 
            +
             | 
| 440 | 
            +
                    monkeypatch.setattr(sys, "path", [site_packages])
         | 
| 441 | 
            +
                    return os.fspath(site_packages)
         | 
| 442 | 
            +
             | 
| 443 | 
            +
                FILES = {
         | 
| 444 | 
            +
                    "pkg1_mod-1.2.3.dist-info/METADATA": """
         | 
| 445 | 
            +
                        Metadata-Version: 2.4
         | 
| 446 | 
            +
                        Name: pkg1.mod
         | 
| 447 | 
            +
                        Version: 1.2.3
         | 
| 448 | 
            +
                        """,
         | 
| 449 | 
            +
                    "pkg2.mod-0.42.dist-info/METADATA": """
         | 
| 450 | 
            +
                        Metadata-Version: 2.1
         | 
| 451 | 
            +
                        Name: pkg2.mod
         | 
| 452 | 
            +
                        Version: 0.42
         | 
| 453 | 
            +
                        """,
         | 
| 454 | 
            +
                    "pkg3_mod.egg-info/PKG-INFO": """
         | 
| 455 | 
            +
                        Name: pkg3.mod
         | 
| 456 | 
            +
                        Version: 1.2.3.4
         | 
| 457 | 
            +
                        """,
         | 
| 458 | 
            +
                    "pkg4.mod.egg-info/PKG-INFO": """
         | 
| 459 | 
            +
                        Name: pkg4.mod
         | 
| 460 | 
            +
                        Version: 0.42.1
         | 
| 461 | 
            +
                        """,
         | 
| 462 | 
            +
                }
         | 
| 463 | 
            +
             | 
| 464 | 
            +
                @pytest.mark.parametrize(
         | 
| 465 | 
            +
                    ("version", "requirement"),
         | 
| 466 | 
            +
                    [
         | 
| 467 | 
            +
                        ("1.2.3", "pkg1.mod>=1"),
         | 
| 468 | 
            +
                        ("0.42", "pkg2.mod>=0.4"),
         | 
| 469 | 
            +
                        ("1.2.3.4", "pkg3.mod<=2"),
         | 
| 470 | 
            +
                        ("0.42.1", "pkg4.mod>0.2,<1"),
         | 
| 471 | 
            +
                    ],
         | 
| 472 | 
            +
                )
         | 
| 473 | 
            +
                def test_require_non_normalised_name(
         | 
| 474 | 
            +
                    self, tmp_path, monkeypatch, version, requirement
         | 
| 475 | 
            +
                ):
         | 
| 476 | 
            +
                    # https://github.com/pypa/setuptools/issues/4853
         | 
| 477 | 
            +
                    site_packages = self.fake_site_packages(tmp_path, monkeypatch, self.FILES)
         | 
| 478 | 
            +
                    ws = pkg_resources.WorkingSet([site_packages])
         | 
| 479 | 
            +
             | 
| 480 | 
            +
                    for req in [requirement, requirement.replace(".", "-")]:
         | 
| 481 | 
            +
                        [dist] = ws.require(req)
         | 
| 482 | 
            +
                        assert dist.version == version
         | 
| 483 | 
            +
                        assert os.path.samefile(
         | 
| 484 | 
            +
                            os.path.commonpath([dist.location, site_packages]), site_packages
         | 
| 485 | 
            +
                        )
         | 
| @@ -104,9 +104,13 @@ def parametrize_test_working_set_resolve(*test_list): | |
| 104 104 | 
             
                            )
         | 
| 105 105 | 
             
                        )
         | 
| 106 106 | 
             
                return pytest.mark.parametrize(
         | 
| 107 | 
            -
                     | 
| 108 | 
            -
             | 
| 109 | 
            -
             | 
| 107 | 
            +
                    (
         | 
| 108 | 
            +
                        "installed_dists",
         | 
| 109 | 
            +
                        "installable_dists",
         | 
| 110 | 
            +
                        "requirements",
         | 
| 111 | 
            +
                        "replace_conflicting",
         | 
| 112 | 
            +
                        "resolved_dists_or_exception",
         | 
| 113 | 
            +
                    ),
         | 
| 110 114 | 
             
                    argvalues,
         | 
| 111 115 | 
             
                    ids=idlist,
         | 
| 112 116 | 
             
                )
         | 
| @@ -134,7 +134,13 @@ def filename_component_broken(value: str) -> str: | |
| 134 134 | 
             
            def safer_name(value: str) -> str:
         | 
| 135 135 | 
             
                """Like ``safe_name`` but can be used as filename component for wheel"""
         | 
| 136 136 | 
             
                # See bdist_wheel.safer_name
         | 
| 137 | 
            -
                return  | 
| 137 | 
            +
                return (
         | 
| 138 | 
            +
                    # Per https://packaging.python.org/en/latest/specifications/name-normalization/#name-normalization
         | 
| 139 | 
            +
                    re.sub(r"[-_.]+", "-", safe_name(value))
         | 
| 140 | 
            +
                    .lower()
         | 
| 141 | 
            +
                    # Per https://packaging.python.org/en/latest/specifications/binary-distribution-format/#escaping-and-unicode
         | 
| 142 | 
            +
                    .replace("-", "_")
         | 
| 143 | 
            +
                )
         | 
| 138 144 |  | 
| 139 145 |  | 
| 140 146 | 
             
            def safer_best_effort_version(value: str) -> str:
         | 
| @@ -23,19 +23,13 @@ from packaging import tags, version as _packaging_version | |
| 23 23 | 
             
            from wheel.wheelfile import WheelFile
         | 
| 24 24 |  | 
| 25 25 | 
             
            from .. import Command, __version__, _shutil
         | 
| 26 | 
            +
            from .._normalization import safer_name
         | 
| 26 27 | 
             
            from ..warnings import SetuptoolsDeprecationWarning
         | 
| 27 28 | 
             
            from .egg_info import egg_info as egg_info_cls
         | 
| 28 29 |  | 
| 29 30 | 
             
            from distutils import log
         | 
| 30 31 |  | 
| 31 32 |  | 
| 32 | 
            -
            def safe_name(name: str) -> str:
         | 
| 33 | 
            -
                """Convert an arbitrary string to a standard distribution name
         | 
| 34 | 
            -
                Any runs of non-alphanumeric/. characters are replaced with a single '-'.
         | 
| 35 | 
            -
                """
         | 
| 36 | 
            -
                return re.sub("[^A-Za-z0-9.]+", "-", name)
         | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 33 | 
             
            def safe_version(version: str) -> str:
         | 
| 40 34 | 
             
                """
         | 
| 41 35 | 
             
                Convert an arbitrary string to a standard version string
         | 
| @@ -133,10 +127,6 @@ def get_abi_tag() -> str | None: | |
| 133 127 | 
             
                return abi
         | 
| 134 128 |  | 
| 135 129 |  | 
| 136 | 
            -
            def safer_name(name: str) -> str:
         | 
| 137 | 
            -
                return safe_name(name).replace("-", "_")
         | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 130 | 
             
            def safer_version(version: str) -> str:
         | 
| 141 131 | 
             
                return safe_version(version).replace("-", "_")
         | 
| 142 132 |  | 
| @@ -294,7 +284,7 @@ class bdist_wheel(Command): | |
| 294 284 | 
             
                        raise ValueError(
         | 
| 295 285 | 
             
                            f"`py_limited_api={self.py_limited_api!r}` not supported. "
         | 
| 296 286 | 
             
                            "`Py_LIMITED_API` is currently incompatible with "
         | 
| 297 | 
            -
                             | 
| 287 | 
            +
                            "`Py_GIL_DISABLED`."
         | 
| 298 288 | 
             
                            "See https://github.com/python/cpython/issues/111506."
         | 
| 299 289 | 
             
                        )
         | 
| 300 290 |  | 
| @@ -246,9 +246,9 @@ def test_no_scripts(wheel_paths): | |
| 246 246 |  | 
| 247 247 |  | 
| 248 248 | 
             
            def test_unicode_record(wheel_paths):
         | 
| 249 | 
            -
                path = next(path for path in wheel_paths if " | 
| 249 | 
            +
                path = next(path for path in wheel_paths if "unicode_dist" in path)
         | 
| 250 250 | 
             
                with ZipFile(path) as zf:
         | 
| 251 | 
            -
                    record = zf.read(" | 
| 251 | 
            +
                    record = zf.read("unicode_dist-0.1.dist-info/RECORD")
         | 
| 252 252 |  | 
| 253 253 | 
             
                assert "åäö_日本語.py".encode() in record
         | 
| 254 254 |  | 
| @@ -8,7 +8,7 @@ import pytest | |
| 8 8 | 
             
            from setuptools import Distribution
         | 
| 9 9 | 
             
            from setuptools.dist import check_package_data, check_specifier
         | 
| 10 10 |  | 
| 11 | 
            -
            from .test_easy_install import  | 
| 11 | 
            +
            from .test_easy_install import make_trivial_sdist
         | 
| 12 12 | 
             
            from .test_find_packages import ensure_files
         | 
| 13 13 | 
             
            from .textwrap import DALS
         | 
| 14 14 |  | 
| @@ -25,7 +25,7 @@ def test_dist_fetch_build_egg(tmpdir): | |
| 25 25 | 
             
                def sdist_with_index(distname, version):
         | 
| 26 26 | 
             
                    dist_dir = index.mkdir(distname)
         | 
| 27 27 | 
             
                    dist_sdist = f'{distname}-{version}.tar.gz'
         | 
| 28 | 
            -
                     | 
| 28 | 
            +
                    make_trivial_sdist(str(dist_dir.join(dist_sdist)), distname, version)
         | 
| 29 29 | 
             
                    with dist_dir.join('index.html').open('w') as fp:
         | 
| 30 30 | 
             
                        fp.write(
         | 
| 31 31 | 
             
                            DALS(
         | 
| @@ -188,7 +188,7 @@ class TestWheelCompatibility: | |
| 188 188 | 
             
                    dist_info = next(tmp_path.glob("dir_dist/*.dist-info"))
         | 
| 189 189 |  | 
| 190 190 | 
             
                    assert dist_info.name == wheel_dist_info.name
         | 
| 191 | 
            -
                    assert dist_info.name.startswith(f" | 
| 191 | 
            +
                    assert dist_info.name.startswith(f"my_proj-{version}{suffix}")
         | 
| 192 192 | 
             
                    for file in "METADATA", "entry_points.txt":
         | 
| 193 193 | 
             
                        assert read(dist_info / file) == read(wheel_dist_info / file)
         | 
| 194 194 |  | 
| @@ -26,6 +26,7 @@ import pkg_resources | |
| 26 26 | 
             
            import setuptools.command.easy_install as ei
         | 
| 27 27 | 
             
            from pkg_resources import Distribution as PRDistribution, normalize_path, working_set
         | 
| 28 28 | 
             
            from setuptools import sandbox
         | 
| 29 | 
            +
            from setuptools._normalization import safer_name
         | 
| 29 30 | 
             
            from setuptools.command.easy_install import PthDistributions
         | 
| 30 31 | 
             
            from setuptools.dist import Distribution
         | 
| 31 32 | 
             
            from setuptools.sandbox import run_setup
         | 
| @@ -670,11 +671,11 @@ class TestSetupRequires: | |
| 670 671 |  | 
| 671 672 | 
             
                    with contexts.save_pkg_resources_state():
         | 
| 672 673 | 
             
                        with contexts.tempdir() as temp_dir:
         | 
| 673 | 
            -
                            foobar_1_archive = os.path.join(temp_dir, ' | 
| 674 | 
            +
                            foobar_1_archive = os.path.join(temp_dir, 'foo_bar-0.1.tar.gz')
         | 
| 674 675 | 
             
                            make_nspkg_sdist(foobar_1_archive, 'foo.bar', '0.1')
         | 
| 675 676 | 
             
                            # Now actually go ahead an extract to the temp dir and add the
         | 
| 676 677 | 
             
                            # extracted path to sys.path so foo.bar v0.1 is importable
         | 
| 677 | 
            -
                            foobar_1_dir = os.path.join(temp_dir, ' | 
| 678 | 
            +
                            foobar_1_dir = os.path.join(temp_dir, 'foo_bar-0.1')
         | 
| 678 679 | 
             
                            os.mkdir(foobar_1_dir)
         | 
| 679 680 | 
             
                            with tarfile.open(foobar_1_archive) as tf:
         | 
| 680 681 | 
             
                                tf.extraction_filter = lambda member, path: member
         | 
| @@ -697,7 +698,7 @@ class TestSetupRequires: | |
| 697 698 | 
             
                                        len(foo.__path__) == 2):
         | 
| 698 699 | 
             
                                    print('FAIL')
         | 
| 699 700 |  | 
| 700 | 
            -
                                if ' | 
| 701 | 
            +
                                if 'foo_bar-0.2' not in foo.__path__[0]:
         | 
| 701 702 | 
             
                                    print('FAIL')
         | 
| 702 703 | 
             
                            """
         | 
| 703 704 | 
             
                            )
         | 
| @@ -718,8 +719,8 @@ class TestSetupRequires: | |
| 718 719 | 
             
                                    # Don't even need to install the package, just
         | 
| 719 720 | 
             
                                    # running the setup.py at all is sufficient
         | 
| 720 721 | 
             
                                    run_setup(test_setup_py, ['--name'])
         | 
| 721 | 
            -
                                except pkg_resources.VersionConflict:
         | 
| 722 | 
            -
                                     | 
| 722 | 
            +
                                except pkg_resources.VersionConflict:  # pragma: nocover
         | 
| 723 | 
            +
                                    pytest.fail(
         | 
| 723 724 | 
             
                                        'Installing setup.py requirements caused a VersionConflict'
         | 
| 724 725 | 
             
                                    )
         | 
| 725 726 |  | 
| @@ -1120,6 +1121,8 @@ def make_nspkg_sdist(dist_path, distname, version): | |
| 1120 1121 | 
             
                package with the same name as distname.  The top-level package is
         | 
| 1121 1122 | 
             
                designated a namespace package).
         | 
| 1122 1123 | 
             
                """
         | 
| 1124 | 
            +
                # Assert that the distname contains at least one period
         | 
| 1125 | 
            +
                assert '.' in distname
         | 
| 1123 1126 |  | 
| 1124 1127 | 
             
                parts = distname.split('.')
         | 
| 1125 1128 | 
             
                nspackage = parts[0]
         | 
| @@ -1207,10 +1210,11 @@ def create_setup_requires_package( | |
| 1207 1210 | 
             
                package itself is just 'test_pkg'.
         | 
| 1208 1211 | 
             
                """
         | 
| 1209 1212 |  | 
| 1213 | 
            +
                normalized_distname = safer_name(distname)
         | 
| 1210 1214 | 
             
                test_setup_attrs = {
         | 
| 1211 1215 | 
             
                    'name': 'test_pkg',
         | 
| 1212 1216 | 
             
                    'version': '0.0',
         | 
| 1213 | 
            -
                    'setup_requires': [f'{ | 
| 1217 | 
            +
                    'setup_requires': [f'{normalized_distname}=={version}'],
         | 
| 1214 1218 | 
             
                    'dependency_links': [os.path.abspath(path)],
         | 
| 1215 1219 | 
             
                }
         | 
| 1216 1220 | 
             
                if setup_attrs:
         | 
| @@ -1259,7 +1263,7 @@ def create_setup_requires_package( | |
| 1259 1263 | 
             
                with open(os.path.join(test_pkg, 'setup.py'), 'w', encoding="utf-8") as f:
         | 
| 1260 1264 | 
             
                    f.write(setup_py_template % test_setup_attrs)
         | 
| 1261 1265 |  | 
| 1262 | 
            -
                foobar_path = os.path.join(path, f'{ | 
| 1266 | 
            +
                foobar_path = os.path.join(path, f'{normalized_distname}-{version}.tar.gz')
         | 
| 1263 1267 | 
             
                make_package(foobar_path, distname, version)
         | 
| 1264 1268 |  | 
| 1265 1269 | 
             
                return test_pkg
         | 
| @@ -300,7 +300,12 @@ class TestEggInfo: | |
| 300 300 | 
             
                                    )
         | 
| 301 301 | 
             
                                )
         | 
| 302 302 | 
             
                        return pytest.mark.parametrize(
         | 
| 303 | 
            -
                             | 
| 303 | 
            +
                            (
         | 
| 304 | 
            +
                                "requires",
         | 
| 305 | 
            +
                                "use_setup_cfg",
         | 
| 306 | 
            +
                                "expected_requires",
         | 
| 307 | 
            +
                                "install_cmd_kwargs",
         | 
| 308 | 
            +
                            ),
         | 
| 304 309 | 
             
                            argvalues,
         | 
| 305 310 | 
             
                            ids=idlist,
         | 
| 306 311 | 
             
                        )
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Metadata-Version: 2.1
         | 
| 2 2 | 
             
            Name: py2docfx
         | 
| 3 | 
            -
            Version: 0.1. | 
| 3 | 
            +
            Version: 0.1.13.dev2012165
         | 
| 4 4 | 
             
            Summary: A package built based on Sphinx which download source code package and generate yaml files supported by docfx.
         | 
| 5 5 | 
             
            Author: Microsoft Corporation
         | 
| 6 6 | 
             
            License: MIT License
         | 
| @@ -75,7 +75,7 @@ py2docfx/docfx_yaml/settings.py,sha256=JQZNwFebczl-zn8Yk2taAGANRi-Hw8hywtDWxqXXF | |
| 75 75 | 
             
            py2docfx/docfx_yaml/translator.py,sha256=LSzNl4C-07bLbUZ5myfyWwh25cTNIIBih77Cp4tBWvo,25999
         | 
| 76 76 | 
             
            py2docfx/docfx_yaml/utils.py,sha256=m5jC_qP2NKqzUx_z0zgZ-HAmxQdNTpJYKkL_F9vGeII,1555
         | 
| 77 77 | 
             
            py2docfx/docfx_yaml/write_utils.py,sha256=q5qoYWw6GVDV8a3E8IxcSLWnN9sAer42VFRgadHBkgk,305
         | 
| 78 | 
            -
            py2docfx/docfx_yaml/writer.py,sha256= | 
| 78 | 
            +
            py2docfx/docfx_yaml/writer.py,sha256=c_3s3KLbKJWRaafQgSK7P_8rs42RjB4nSBj9Mi4yA9g,35972
         | 
| 79 79 | 
             
            py2docfx/docfx_yaml/yaml_builder.py,sha256=S3xty_ILxEUsw1J9VCwUkSLLYAUfQDm3fYbciv70gXc,2573
         | 
| 80 80 | 
             
            py2docfx/docfx_yaml/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 81 81 | 
             
            py2docfx/docfx_yaml/tests/conftest.py,sha256=CykkZxaDZ-3a1EIQdGBieSmHL9FdyTE2xTJZe9QgKcg,1214
         | 
| @@ -91,7 +91,7 @@ py2docfx/docfx_yaml/tests/test_translator_numpy_returns.py,sha256=nmC70WUqCRcB1t | |
| 91 91 | 
             
            py2docfx/docfx_yaml/tests/test_translator_rst_returns.py,sha256=BL3nOMMTPzNPJk-P9oMANiXnJ7ocuiecbFHH4DU1n40,2942
         | 
| 92 92 | 
             
            py2docfx/docfx_yaml/tests/test_translator_signatures.py,sha256=DM51EOb4UXLkrO1-4cQQQvvX210goAsnxKJH-4A2U2Q,1537
         | 
| 93 93 | 
             
            py2docfx/docfx_yaml/tests/test_writer_table.py,sha256=UnGYXQ-QVxin_e-HGZAHdg1LSFV0qc480ZNsqPN9OYc,1444
         | 
| 94 | 
            -
            py2docfx/docfx_yaml/tests/test_writer_uri.py,sha256= | 
| 94 | 
            +
            py2docfx/docfx_yaml/tests/test_writer_uri.py,sha256=wwdxraB5wP88OIJzuLGviit44Kesb8dvU9ajb5Ra0qA,2093
         | 
| 95 95 | 
             
            py2docfx/docfx_yaml/tests/test_writer_versions.py,sha256=0-0VTMhbZ4ml9ryu1gYnu0mM2yIEKsBuFYb2F6grzTE,2995
         | 
| 96 96 | 
             
            py2docfx/docfx_yaml/tests/roots/test-build-finished/code_with_signature_and_docstring.py,sha256=qvcKWL68C2aDTP8JT022nMV4EdZ50vhxVshMrHVO2sY,449
         | 
| 97 97 | 
             
            py2docfx/docfx_yaml/tests/roots/test-build-finished/conf.py,sha256=L8vIFmO546PCQks50Gif_uTBwC3cppohXrQaogfyRF8,410
         | 
| @@ -123,7 +123,7 @@ py2docfx/docfx_yaml/tests/roots/test-translator-signatures/conf.py,sha256=avcbnI | |
| 123 123 | 
             
            py2docfx/docfx_yaml/tests/roots/test-translator-signatures/refered_objects.py,sha256=DJaX52mnHw9W3GSqKh75CYK87g4CczXNNjFO496Ai2U,79
         | 
| 124 124 | 
             
            py2docfx/docfx_yaml/tests/roots/test-writer-table/code_with_table_desc.py,sha256=J4eFvXsymgFvjnwVUY0APtUGwuxvt-AFJjTaEaQ7zMQ,574
         | 
| 125 125 | 
             
            py2docfx/docfx_yaml/tests/roots/test-writer-table/conf.py,sha256=avcbnIOV2mlGQwhMQJZC4W6UGRBRhnq1QBxjPWlySxQ,260
         | 
| 126 | 
            -
            py2docfx/docfx_yaml/tests/roots/test-writer-uri/code_with_uri.py,sha256= | 
| 126 | 
            +
            py2docfx/docfx_yaml/tests/roots/test-writer-uri/code_with_uri.py,sha256=GSz1B0xiXSaddkrniVBXzW7R4jDuPq1sWU7ByBH6MxA,754
         | 
| 127 127 | 
             
            py2docfx/docfx_yaml/tests/roots/test-writer-uri/conf.py,sha256=avcbnIOV2mlGQwhMQJZC4W6UGRBRhnq1QBxjPWlySxQ,260
         | 
| 128 128 | 
             
            py2docfx/docfx_yaml/tests/roots/test-writer-versions/code_with_version_directives.py,sha256=UuizbrJPaG_PcaH18BvbI9KQevOaLd4SslpnzMSqcrE,1030
         | 
| 129 129 | 
             
            py2docfx/docfx_yaml/tests/roots/test-writer-versions/conf.py,sha256=SCEKrm9VigArfdgf-GAieJD-40d0ctT6urmGIjFOZLM,404
         | 
| @@ -858,14 +858,14 @@ py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/webencodings/labels.py,sha2 | |
| 858 858 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/webencodings/mklabels.py,sha256=GYIeywnpaLnP0GSic8LFWgd0UVvO_l1Nc6YoF-87R_4,1305
         | 
| 859 859 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/webencodings/tests.py,sha256=OtGLyjhNY1fvkW1GvLJ_FV9ZoqC9Anyjr7q3kxTbzNs,6563
         | 
| 860 860 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py,sha256=yOqWSdmpytGfUgh_Z6JYgDNhoc-BAHyyeeT15Fr42tM,4307
         | 
| 861 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py,sha256 | 
| 861 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py,sha256=-rh7XOnTxdGuC-_9FAyu5D6s8BL1UsBehxUtj7a-IVo,126203
         | 
| 862 862 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 863 863 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_find_distributions.py,sha256=U91cov5L1COAIWLNq3Xy4plU7_MnOE1WtXMu6iV2waM,1972
         | 
| 864 864 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py,sha256=nzVoK557KZQN0V3DIQ1sVeaCOgt4Kpl-CODAWsO7pmc,1652
         | 
| 865 865 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_markers.py,sha256=0orKg7UMDf7fnuNQvRMOc-EF9EAP_JTQnk4mtGgbW50,241
         | 
| 866 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py,sha256= | 
| 866 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py,sha256=5Mt4bJQhLCL8j8cC46Uv32Np2Xc1TTxLGawIfET55Fk,17111
         | 
| 867 867 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_resources.py,sha256=K0LqMAUGpRQ9pUb9K0vyI7GesvtlQvTH074m-E2VQlo,31252
         | 
| 868 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py,sha256= | 
| 868 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py,sha256=lRtGJWIixSwSMSbjHgRxeJEQiLMRXcz3xzJL2qL7eXY,8602
         | 
| 869 869 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py,sha256=1VobhAZbMb7M9mfhb_NE8PwDsvukoWLs9aUAS0pYhe8,105
         | 
| 870 870 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pygments/__init__.py,sha256=H0XmVJ1Fe9qSEDBU1j1wZLT-Tfu7blFbDiFSfpwU63c,2959
         | 
| 871 871 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/pygments/__main__.py,sha256=p8AJyoyCOMYGvzWHdnq0_A9qaaVqaj02nIu3xhJp1_4,348
         | 
| @@ -1228,7 +1228,7 @@ py2docfx/venv/basevenv/Lib/site-packages/setuptools/_entry_points.py,sha256=Y3QU | |
| 1228 1228 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_imp.py,sha256=YY1EjZEN-0zYci1cxO10B_adAEOr7i8eK8JoCc9Ierc,2435
         | 
| 1229 1229 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_importlib.py,sha256=aKIjcK0HKXNz2D-XTrxaixGn_juTkONwmu3dcheMOF0,223
         | 
| 1230 1230 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_itertools.py,sha256=jWRfsIrpC7myooz3hDURj9GtvpswZeKXg2HakmEhNjo,657
         | 
| 1231 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py,sha256= | 
| 1231 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py,sha256=zdSsIDjziHb-3_GYcY4UEejWQZxclOz3387qbYNZ67s,4824
         | 
| 1232 1232 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_path.py,sha256=cPv41v03HD7uEYqCIo-E_cGRfpPVr4lywBCiK-HSrCg,2685
         | 
| 1233 1233 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_reqs.py,sha256=QI3C9uOBSNRccu208qPnixHx51nxCry7_nPTIJaSYxM,1438
         | 
| 1234 1234 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/_shutil.py,sha256=cAOllcoyMTXs5JLoybQi29yI5gABk82hepJyOBv2bMw,1496
         | 
| @@ -1464,7 +1464,7 @@ py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/_requirestxt.py,sha2 | |
| 1464 1464 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/alias.py,sha256=rDdrMt32DS6qf3K7tjZZyHD_dMKrm77AXcAtx-nBQ0I,2380
         | 
| 1465 1465 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_egg.py,sha256=3eDucQ4fdeYMsLO9PhBfY1JkcMLhZXgnAI_9FdFNsEE,16972
         | 
| 1466 1466 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_rpm.py,sha256=LyqI49w48SKk0FmuHsE9MLzX1SuXjL7YMNbZMFZqFII,1435
         | 
| 1467 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py,sha256= | 
| 1467 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py,sha256=NKE9391SgoggEtzLC1CZNKWHDZ6k5bGrIZiaAJtpNzU,21976
         | 
| 1468 1468 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build.py,sha256=eI7STMERGGZEpzk1tvJN8p9IOjAAXMcGLzljv2mwI3M,6052
         | 
| 1469 1469 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_clib.py,sha256=AbgpPIF_3qL8fZr3JIebI-WHTMTBiMfrFkVQz8K40G4,4528
         | 
| 1470 1470 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/build_ext.py,sha256=bUH4M0NizaJJrv10wK-ZD3uY0TxCSZlYQDhiwwzHslM,18377
         | 
| @@ -1510,7 +1510,7 @@ py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/server.py,sha256=0FDZf | |
| 1510 1510 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_archive_util.py,sha256=buuKdY8XkW26Pe3IKAoBRGHG0MDumnuNoPg2WsAQzIg,845
         | 
| 1511 1511 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py,sha256=75Xq3gYn79LIIyusEltbHan0bEgAt2e_CaL7KLS8-KQ,775
         | 
| 1512 1512 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_egg.py,sha256=6PaYN1F3JDbIh1uK0urv7yJFcx98z5dn9SOJ8Mv91l8,1957
         | 
| 1513 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py,sha256= | 
| 1513 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py,sha256=9JY8c6jH_WVPYnkx_0aEnaoHBMzKAWpkUlRJRmrm6GM,19906
         | 
| 1514 1514 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build.py,sha256=wJgMz2hwHADcLFg-nXrwRVhus7hjmAeEGgrpIQwCGnA,798
         | 
| 1515 1515 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_clib.py,sha256=bX51XRAf4uO7IuHFpjePnoK8mE74N2gsoeEqF-ofgws,3123
         | 
| 1516 1516 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_ext.py,sha256=e4ZSxsYPB5zq1KSqGEuATZ0t0PJQzMhjjkKJ-hIjcgc,10099
         | 
| @@ -1520,12 +1520,12 @@ py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_config_discovery. | |
| 1520 1520 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py,sha256=FpnPjsuRnA-8jRDvBe2oI_3vivwjNTPuF2CswCONXA4,19102
         | 
| 1521 1521 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_depends.py,sha256=yQBXoQbNQlJit6mbRVoz6Bb553f3sNrq02lZimNz5XY,424
         | 
| 1522 1522 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_develop.py,sha256=CLzXZ8-b5-VFTuau4P4yXEdLx1UdyTFcOfrV0qyUIdE,5142
         | 
| 1523 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py,sha256= | 
| 1524 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py,sha256= | 
| 1523 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py,sha256=GFjyL2etAxvVM3q7NhFEGcXS5gyKj8VzbqcbKzpqbOk,8901
         | 
| 1524 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py,sha256=5kBRj9tuBsVreBsY22H2feMO_JQZsSoOZMU_MJfUevY,7077
         | 
| 1525 1525 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_distutils_adoption.py,sha256=_eynrOfyEqXFEmjUJhzpe8GXPyTUPvNSObs4qAAmBy8,5987
         | 
| 1526 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py,sha256= | 
| 1526 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py,sha256=jx4lpFyee0G432cdnwBow3AkL4ibw-0QILwldwv5SCI,53534
         | 
| 1527 1527 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_editable_install.py,sha256=7eTEtpT0k7QeVyZg64eh3kZn-SjckuB9LcokOuV37DI,43383
         | 
| 1528 | 
            -
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py,sha256= | 
| 1528 | 
            +
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py,sha256=wLQmM9grgJnYjazzxGV5pd_UAgamTtKPsHXFZmGYRd8,44073
         | 
| 1529 1529 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_extern.py,sha256=rpKU6oCcksumLwf5TeKlDluFQ0TUfbPwTLQbpxcFrCU,296
         | 
| 1530 1530 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_find_packages.py,sha256=CTLAcTzWGWBLCcd2aAsUVkvO3ibrlqexFBdDKOWPoq8,7819
         | 
| 1531 1531 | 
             
            py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_find_py_modules.py,sha256=zQjuhIG5TQN2SJPix9ARo4DL_w84Ln8QsHDUjjbrtAQ,2404
         | 
| @@ -2090,7 +2090,7 @@ py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/utils.py,sha256=oH9Q3Wc | |
| 2090 2090 | 
             
            py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/version.py,sha256=7_thI7FzRQxEsbtUYwrJs3FCFWF666mw74H8mggPRR0,123
         | 
| 2091 2091 | 
             
            py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__init__.py,sha256=d9MUx-1V_qD3x9igIy4JT4oC5CU0yjulk7QyZWeRFhg,144
         | 
| 2092 2092 | 
             
            py2docfx/venv/venv1/Lib/site-packages/charset_normalizer/cli/__main__.py,sha256=lZ89qRWun7FRxX0qm1GhK-m0DH0i048yiMAX1mVIuRg,10731
         | 
| 2093 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py,sha256= | 
| 2093 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py,sha256=LsHy-0b4kwxfAD0ryobJhitlFn7Tk8Sepunxo8YcUZs,445
         | 
| 2094 2094 | 
             
            py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py,sha256=XsRL_PxbU6UgoyoglAgJQSrJCP97ovBA8YIEQ2-uI68,762
         | 
| 2095 2095 | 
             
            py2docfx/venv/venv1/Lib/site-packages/cryptography/exceptions.py,sha256=835EWILc2fwxw-gyFMriciC2SqhViETB10LBSytnDIc,1087
         | 
| 2096 2096 | 
             
            py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py,sha256=aMU2HyDJ5oRGjg8AkFvHwE7BSmHY4fVUCaioxZcd8gA,6933
         | 
| @@ -3087,14 +3087,14 @@ py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/webencodings/labels.py,sha256= | |
| 3087 3087 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/webencodings/mklabels.py,sha256=GYIeywnpaLnP0GSic8LFWgd0UVvO_l1Nc6YoF-87R_4,1305
         | 
| 3088 3088 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/webencodings/tests.py,sha256=OtGLyjhNY1fvkW1GvLJ_FV9ZoqC9Anyjr7q3kxTbzNs,6563
         | 
| 3089 3089 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py,sha256=yOqWSdmpytGfUgh_Z6JYgDNhoc-BAHyyeeT15Fr42tM,4307
         | 
| 3090 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py,sha256 | 
| 3090 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py,sha256=-rh7XOnTxdGuC-_9FAyu5D6s8BL1UsBehxUtj7a-IVo,126203
         | 
| 3091 3091 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 3092 3092 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_find_distributions.py,sha256=U91cov5L1COAIWLNq3Xy4plU7_MnOE1WtXMu6iV2waM,1972
         | 
| 3093 3093 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py,sha256=nzVoK557KZQN0V3DIQ1sVeaCOgt4Kpl-CODAWsO7pmc,1652
         | 
| 3094 3094 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_markers.py,sha256=0orKg7UMDf7fnuNQvRMOc-EF9EAP_JTQnk4mtGgbW50,241
         | 
| 3095 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py,sha256= | 
| 3095 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py,sha256=5Mt4bJQhLCL8j8cC46Uv32Np2Xc1TTxLGawIfET55Fk,17111
         | 
| 3096 3096 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_resources.py,sha256=K0LqMAUGpRQ9pUb9K0vyI7GesvtlQvTH074m-E2VQlo,31252
         | 
| 3097 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py,sha256= | 
| 3097 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py,sha256=lRtGJWIixSwSMSbjHgRxeJEQiLMRXcz3xzJL2qL7eXY,8602
         | 
| 3098 3098 | 
             
            py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py,sha256=1VobhAZbMb7M9mfhb_NE8PwDsvukoWLs9aUAS0pYhe8,105
         | 
| 3099 3099 | 
             
            py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py,sha256=zm6QcwwGAMZ9u7Emd18lIC0atwT67O--BtXyVs9T8iY,231
         | 
| 3100 3100 | 
             
            py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py,sha256=b-NLz4kKv2MZhYtR6m0CWneEi1KJ-tntELq2FwjY42s,2056
         | 
| @@ -3483,7 +3483,7 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/_entry_points.py,sha256=Y3QUE9J | |
| 3483 3483 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_imp.py,sha256=YY1EjZEN-0zYci1cxO10B_adAEOr7i8eK8JoCc9Ierc,2435
         | 
| 3484 3484 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py,sha256=aKIjcK0HKXNz2D-XTrxaixGn_juTkONwmu3dcheMOF0,223
         | 
| 3485 3485 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_itertools.py,sha256=jWRfsIrpC7myooz3hDURj9GtvpswZeKXg2HakmEhNjo,657
         | 
| 3486 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py,sha256= | 
| 3486 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py,sha256=zdSsIDjziHb-3_GYcY4UEejWQZxclOz3387qbYNZ67s,4824
         | 
| 3487 3487 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py,sha256=cPv41v03HD7uEYqCIo-E_cGRfpPVr4lywBCiK-HSrCg,2685
         | 
| 3488 3488 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py,sha256=QI3C9uOBSNRccu208qPnixHx51nxCry7_nPTIJaSYxM,1438
         | 
| 3489 3489 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py,sha256=cAOllcoyMTXs5JLoybQi29yI5gABk82hepJyOBv2bMw,1496
         | 
| @@ -3719,7 +3719,7 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py,sha256= | |
| 3719 3719 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py,sha256=rDdrMt32DS6qf3K7tjZZyHD_dMKrm77AXcAtx-nBQ0I,2380
         | 
| 3720 3720 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py,sha256=3eDucQ4fdeYMsLO9PhBfY1JkcMLhZXgnAI_9FdFNsEE,16972
         | 
| 3721 3721 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_rpm.py,sha256=LyqI49w48SKk0FmuHsE9MLzX1SuXjL7YMNbZMFZqFII,1435
         | 
| 3722 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py,sha256= | 
| 3722 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py,sha256=NKE9391SgoggEtzLC1CZNKWHDZ6k5bGrIZiaAJtpNzU,21976
         | 
| 3723 3723 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py,sha256=eI7STMERGGZEpzk1tvJN8p9IOjAAXMcGLzljv2mwI3M,6052
         | 
| 3724 3724 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py,sha256=AbgpPIF_3qL8fZr3JIebI-WHTMTBiMfrFkVQz8K40G4,4528
         | 
| 3725 3725 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py,sha256=bUH4M0NizaJJrv10wK-ZD3uY0TxCSZlYQDhiwwzHslM,18377
         | 
| @@ -3765,7 +3765,7 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/server.py,sha256=0FDZf0cS | |
| 3765 3765 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_archive_util.py,sha256=buuKdY8XkW26Pe3IKAoBRGHG0MDumnuNoPg2WsAQzIg,845
         | 
| 3766 3766 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py,sha256=75Xq3gYn79LIIyusEltbHan0bEgAt2e_CaL7KLS8-KQ,775
         | 
| 3767 3767 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_egg.py,sha256=6PaYN1F3JDbIh1uK0urv7yJFcx98z5dn9SOJ8Mv91l8,1957
         | 
| 3768 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py,sha256= | 
| 3768 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py,sha256=9JY8c6jH_WVPYnkx_0aEnaoHBMzKAWpkUlRJRmrm6GM,19906
         | 
| 3769 3769 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build.py,sha256=wJgMz2hwHADcLFg-nXrwRVhus7hjmAeEGgrpIQwCGnA,798
         | 
| 3770 3770 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_clib.py,sha256=bX51XRAf4uO7IuHFpjePnoK8mE74N2gsoeEqF-ofgws,3123
         | 
| 3771 3771 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py,sha256=e4ZSxsYPB5zq1KSqGEuATZ0t0PJQzMhjjkKJ-hIjcgc,10099
         | 
| @@ -3775,12 +3775,12 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py, | |
| 3775 3775 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py,sha256=FpnPjsuRnA-8jRDvBe2oI_3vivwjNTPuF2CswCONXA4,19102
         | 
| 3776 3776 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_depends.py,sha256=yQBXoQbNQlJit6mbRVoz6Bb553f3sNrq02lZimNz5XY,424
         | 
| 3777 3777 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_develop.py,sha256=CLzXZ8-b5-VFTuau4P4yXEdLx1UdyTFcOfrV0qyUIdE,5142
         | 
| 3778 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py,sha256= | 
| 3779 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py,sha256= | 
| 3778 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py,sha256=GFjyL2etAxvVM3q7NhFEGcXS5gyKj8VzbqcbKzpqbOk,8901
         | 
| 3779 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py,sha256=5kBRj9tuBsVreBsY22H2feMO_JQZsSoOZMU_MJfUevY,7077
         | 
| 3780 3780 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py,sha256=_eynrOfyEqXFEmjUJhzpe8GXPyTUPvNSObs4qAAmBy8,5987
         | 
| 3781 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py,sha256= | 
| 3781 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py,sha256=jx4lpFyee0G432cdnwBow3AkL4ibw-0QILwldwv5SCI,53534
         | 
| 3782 3782 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_editable_install.py,sha256=7eTEtpT0k7QeVyZg64eh3kZn-SjckuB9LcokOuV37DI,43383
         | 
| 3783 | 
            -
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py,sha256= | 
| 3783 | 
            +
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py,sha256=wLQmM9grgJnYjazzxGV5pd_UAgamTtKPsHXFZmGYRd8,44073
         | 
| 3784 3784 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_extern.py,sha256=rpKU6oCcksumLwf5TeKlDluFQ0TUfbPwTLQbpxcFrCU,296
         | 
| 3785 3785 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_find_packages.py,sha256=CTLAcTzWGWBLCcd2aAsUVkvO3ibrlqexFBdDKOWPoq8,7819
         | 
| 3786 3786 | 
             
            py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_find_py_modules.py,sha256=zQjuhIG5TQN2SJPix9ARo4DL_w84Ln8QsHDUjjbrtAQ,2404
         | 
| @@ -4194,7 +4194,7 @@ py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtas | |
| 4194 4194 | 
             
            py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py,sha256=08ojAS48W6RLsUbRD45j0SJhg_Y2NFHZT6qjT4Vrig0,75
         | 
| 4195 4195 | 
             
            py2docfx/venv/venv1/Scripts/pywin32_postinstall.py,sha256=u95n7QQUxpCjrZistYE-3gN451zXzopuJna8cXRQ4Jw,28115
         | 
| 4196 4196 | 
             
            py2docfx/venv/venv1/Scripts/pywin32_testall.py,sha256=-6yvZmd2lPQc4e8i6PgLsr_totF6mScvoq0Jqr0V2fM,3844
         | 
| 4197 | 
            -
            py2docfx-0.1. | 
| 4198 | 
            -
            py2docfx-0.1. | 
| 4199 | 
            -
            py2docfx-0.1. | 
| 4200 | 
            -
            py2docfx-0.1. | 
| 4197 | 
            +
            py2docfx-0.1.13.dev2012165.dist-info/METADATA,sha256=5sfRNjZEa0mJdRsWawbtFZtgF_KFHaL9W7LKLB1cRkM,601
         | 
| 4198 | 
            +
            py2docfx-0.1.13.dev2012165.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
         | 
| 4199 | 
            +
            py2docfx-0.1.13.dev2012165.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
         | 
| 4200 | 
            +
            py2docfx-0.1.13.dev2012165.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
| 
            File without changes
         |