py2docfx 0.1.12rc2002542__py3-none-any.whl → 0.1.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. py2docfx/docfx_yaml/tests/roots/test-writer-uri/code_with_uri.py +7 -0
  2. py2docfx/docfx_yaml/tests/test_writer_uri.py +4 -0
  3. py2docfx/docfx_yaml/writer.py +13 -1
  4. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/__init__.py +11 -6
  5. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +58 -0
  6. py2docfx/venv/basevenv/Lib/site-packages/pkg_resources/tests/test_working_set.py +7 -3
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +7 -1
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +2 -12
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +2 -2
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_easy_install.py +11 -7
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +6 -1
  14. py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +1 -1
  15. py2docfx/venv/venv1/Lib/site-packages/docs/conf.py +384 -0
  16. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py +11 -6
  17. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +58 -0
  18. py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py +7 -3
  19. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +7 -1
  20. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +2 -12
  21. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +2 -2
  22. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py +2 -2
  23. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py +1 -1
  24. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py +11 -7
  25. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +6 -1
  26. {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dist-info}/METADATA +1 -1
  27. {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dist-info}/RECORD +29 -28
  28. {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dist-info}/WHEEL +0 -0
  29. {py2docfx-0.1.12rc2002542.dist-info → py2docfx-0.1.13.dist-info}/top_level.txt +0 -0
@@ -17,5 +17,12 @@ class SampleClass():
17
17
  """
18
18
  pass
19
19
 
20
+ def dummy_summary3(self):
21
+ """
22
+ This is a bare URL that shouldn't be transformed into a link
23
+ because it's in the exclusion list: https://management.azure.com
24
+ """
25
+ pass
26
+
20
27
  pass
21
28
 
@@ -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
 
@@ -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
- ref_string = '[{}]({})'.format(node.astext(), node.attributes['refuri'])
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 = self.by_key.get(req.key)
711
+ dist: Distribution | None = None
712
712
 
713
- if dist is None:
714
- canonical_key = self.normalized_to_canonical_keys.get(req.key)
713
+ candidates = (
714
+ req.key,
715
+ self.normalized_to_canonical_keys.get(req.key),
716
+ safe_name(req.key).replace(".", "-"),
717
+ )
715
718
 
716
- if canonical_key is not None:
717
- req.key = canonical_key
718
- dist = self.by_key.get(canonical_key)
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
- 'installed_dists,installable_dists,'
108
- 'requirements,replace_conflicting,'
109
- 'resolved_dists_or_exception',
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 filename_component(safe_name(value))
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
- f"`Py_GIL_DISABLED` ({sys.abiflags=!r}). "
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 "unicode.dist" in path)
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("unicode.dist-0.1.dist-info/RECORD")
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 make_nspkg_sdist
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
- make_nspkg_sdist(str(dist_dir.join(dist_sdist)), distname, version)
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"{name.replace('-', '_')}-{version}{suffix}")
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, 'foo.bar-0.1.tar.gz')
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, 'foo.bar-0.1')
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 'foo.bar-0.2' not in foo.__path__[0]:
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
- self.fail(
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'{distname}=={version}'],
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'{distname}-{version}.tar.gz')
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
- 'requires,use_setup_cfg,expected_requires,install_cmd_kwargs',
303
+ (
304
+ "requires",
305
+ "use_setup_cfg",
306
+ "expected_requires",
307
+ "install_cmd_kwargs",
308
+ ),
304
309
  argvalues,
305
310
  ids=idlist,
306
311
  )
@@ -10,7 +10,7 @@ __all__ = [
10
10
  "__version__",
11
11
  ]
12
12
 
13
- __version__ = "44.0.1"
13
+ __version__ = "44.0.2"
14
14
 
15
15
 
16
16
  __author__ = "The Python Cryptographic Authority and individual contributors"
@@ -0,0 +1,384 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2024 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ # googleapis-common-protos documentation build configuration file
17
+ #
18
+ # This file is execfile()d with the current directory set to its
19
+ # containing dir.
20
+ #
21
+ # Note that not all possible configuration values are present in this
22
+ # autogenerated file.
23
+ #
24
+ # All configuration values have a default; values that are commented out
25
+ # serve to show the default.
26
+
27
+ import os
28
+ import shlex
29
+ import sys
30
+
31
+ # If extensions (or modules to document with autodoc) are in another directory,
32
+ # add these directories to sys.path here. If the directory is relative to the
33
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
34
+ sys.path.insert(0, os.path.abspath(".."))
35
+
36
+ # For plugins that can not read conf.py.
37
+ # See also: https://github.com/docascode/sphinx-docfx-yaml/issues/85
38
+ sys.path.insert(0, os.path.abspath("."))
39
+
40
+ __version__ = ""
41
+
42
+ # -- General configuration ------------------------------------------------
43
+
44
+ # If your documentation needs a minimal Sphinx version, state it here.
45
+ needs_sphinx = "1.5.5"
46
+
47
+ # Add any Sphinx extension module names here, as strings. They can be
48
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
49
+ # ones.
50
+ extensions = [
51
+ "sphinx.ext.autodoc",
52
+ "sphinx.ext.autosummary",
53
+ "sphinx.ext.intersphinx",
54
+ "sphinx.ext.coverage",
55
+ "sphinx.ext.doctest",
56
+ "sphinx.ext.napoleon",
57
+ "sphinx.ext.todo",
58
+ "sphinx.ext.viewcode",
59
+ "recommonmark",
60
+ ]
61
+
62
+ # autodoc/autosummary flags
63
+ autoclass_content = "both"
64
+ autodoc_default_options = {"members": True}
65
+ autosummary_generate = True
66
+
67
+
68
+ # Add any paths that contain templates here, relative to this directory.
69
+ templates_path = ["_templates"]
70
+
71
+ # The suffix(es) of source filenames.
72
+ # You can specify multiple suffix as a list of string:
73
+ # source_suffix = ['.rst', '.md']
74
+ source_suffix = [".rst", ".md"]
75
+
76
+ # The encoding of source files.
77
+ # source_encoding = 'utf-8-sig'
78
+
79
+ # The root toctree document.
80
+ root_doc = "index"
81
+
82
+ # General information about the project.
83
+ project = "googleapis-common-protos"
84
+ copyright = "2019, Google"
85
+ author = "Google APIs"
86
+
87
+ # The version info for the project you're documenting, acts as replacement for
88
+ # |version| and |release|, also used in various other places throughout the
89
+ # built documents.
90
+ #
91
+ # The full version, including alpha/beta/rc tags.
92
+ release = __version__
93
+ # The short X.Y version.
94
+ version = ".".join(release.split(".")[0:2])
95
+
96
+ # The language for content autogenerated by Sphinx. Refer to documentation
97
+ # for a list of supported languages.
98
+ #
99
+ # This is also used if you do content translation via gettext catalogs.
100
+ # Usually you set "language" from the command line for these cases.
101
+ language = None
102
+
103
+ # There are two options for replacing |today|: either, you set today to some
104
+ # non-false value, then it is used:
105
+ # today = ''
106
+ # Else, today_fmt is used as the format for a strftime call.
107
+ # today_fmt = '%B %d, %Y'
108
+
109
+ # List of patterns, relative to source directory, that match files and
110
+ # directories to ignore when looking for source files.
111
+ exclude_patterns = [
112
+ "_build",
113
+ "**/.nox/**/*",
114
+ "samples/AUTHORING_GUIDE.md",
115
+ "samples/CONTRIBUTING.md",
116
+ "samples/snippets/README.rst",
117
+ ]
118
+
119
+ # The reST default role (used for this markup: `text`) to use for all
120
+ # documents.
121
+ # default_role = None
122
+
123
+ # If true, '()' will be appended to :func: etc. cross-reference text.
124
+ # add_function_parentheses = True
125
+
126
+ # If true, the current module name will be prepended to all description
127
+ # unit titles (such as .. function::).
128
+ # add_module_names = True
129
+
130
+ # If true, sectionauthor and moduleauthor directives will be shown in the
131
+ # output. They are ignored by default.
132
+ # show_authors = False
133
+
134
+ # The name of the Pygments (syntax highlighting) style to use.
135
+ pygments_style = "sphinx"
136
+
137
+ # A list of ignored prefixes for module index sorting.
138
+ # modindex_common_prefix = []
139
+
140
+ # If true, keep warnings as "system message" paragraphs in the built documents.
141
+ # keep_warnings = False
142
+
143
+ # If true, `todo` and `todoList` produce output, else they produce nothing.
144
+ todo_include_todos = True
145
+
146
+
147
+ # -- Options for HTML output ----------------------------------------------
148
+
149
+ # The theme to use for HTML and HTML Help pages. See the documentation for
150
+ # a list of builtin themes.
151
+ html_theme = "alabaster"
152
+
153
+ # Theme options are theme-specific and customize the look and feel of a theme
154
+ # further. For a list of options available for each theme, see the
155
+ # documentation.
156
+ html_theme_options = {
157
+ "description": "Google Cloud Client Libraries for googleapis-common-protos",
158
+ "github_user": "googleapis",
159
+ "github_repo": "google-cloud-python",
160
+ "github_banner": True,
161
+ "font_family": "'Roboto', Georgia, sans",
162
+ "head_font_family": "'Roboto', Georgia, serif",
163
+ "code_font_family": "'Roboto Mono', 'Consolas', monospace",
164
+ }
165
+
166
+ # Add any paths that contain custom themes here, relative to this directory.
167
+ # html_theme_path = []
168
+
169
+ # The name for this set of Sphinx documents. If None, it defaults to
170
+ # "<project> v<release> documentation".
171
+ # html_title = None
172
+
173
+ # A shorter title for the navigation bar. Default is the same as html_title.
174
+ # html_short_title = None
175
+
176
+ # The name of an image file (relative to this directory) to place at the top
177
+ # of the sidebar.
178
+ # html_logo = None
179
+
180
+ # The name of an image file (within the static path) to use as favicon of the
181
+ # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
182
+ # pixels large.
183
+ # html_favicon = None
184
+
185
+ # Add any paths that contain custom static files (such as style sheets) here,
186
+ # relative to this directory. They are copied after the builtin static files,
187
+ # so a file named "default.css" will overwrite the builtin "default.css".
188
+ html_static_path = ["_static"]
189
+
190
+ # Add any extra paths that contain custom files (such as robots.txt or
191
+ # .htaccess) here, relative to this directory. These files are copied
192
+ # directly to the root of the documentation.
193
+ # html_extra_path = []
194
+
195
+ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
196
+ # using the given strftime format.
197
+ # html_last_updated_fmt = '%b %d, %Y'
198
+
199
+ # If true, SmartyPants will be used to convert quotes and dashes to
200
+ # typographically correct entities.
201
+ # html_use_smartypants = True
202
+
203
+ # Custom sidebar templates, maps document names to template names.
204
+ # html_sidebars = {}
205
+
206
+ # Additional templates that should be rendered to pages, maps page names to
207
+ # template names.
208
+ # html_additional_pages = {}
209
+
210
+ # If false, no module index is generated.
211
+ # html_domain_indices = True
212
+
213
+ # If false, no index is generated.
214
+ # html_use_index = True
215
+
216
+ # If true, the index is split into individual pages for each letter.
217
+ # html_split_index = False
218
+
219
+ # If true, links to the reST sources are added to the pages.
220
+ # html_show_sourcelink = True
221
+
222
+ # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
223
+ # html_show_sphinx = True
224
+
225
+ # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
226
+ # html_show_copyright = True
227
+
228
+ # If true, an OpenSearch description file will be output, and all pages will
229
+ # contain a <link> tag referring to it. The value of this option must be the
230
+ # base URL from which the finished HTML is served.
231
+ # html_use_opensearch = ''
232
+
233
+ # This is the file name suffix for HTML files (e.g. ".xhtml").
234
+ # html_file_suffix = None
235
+
236
+ # Language to be used for generating the HTML full-text search index.
237
+ # Sphinx supports the following languages:
238
+ # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
239
+ # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
240
+ # html_search_language = 'en'
241
+
242
+ # A dictionary with options for the search language support, empty by default.
243
+ # Now only 'ja' uses this config value
244
+ # html_search_options = {'type': 'default'}
245
+
246
+ # The name of a javascript file (relative to the configuration directory) that
247
+ # implements a search results scorer. If empty, the default will be used.
248
+ # html_search_scorer = 'scorer.js'
249
+
250
+ # Output file base name for HTML help builder.
251
+ htmlhelp_basename = "googleapis-common-protos-doc"
252
+
253
+ # -- Options for warnings ------------------------------------------------------
254
+
255
+
256
+ suppress_warnings = [
257
+ # Temporarily suppress this to avoid "more than one target found for
258
+ # cross-reference" warning, which are intractable for us to avoid while in
259
+ # a mono-repo.
260
+ # See https://github.com/sphinx-doc/sphinx/blob
261
+ # /2a65ffeef5c107c19084fabdd706cdff3f52d93c/sphinx/domains/python.py#L843
262
+ "ref.python"
263
+ ]
264
+
265
+ # -- Options for LaTeX output ---------------------------------------------
266
+
267
+ latex_elements = {
268
+ # The paper size ('letterpaper' or 'a4paper').
269
+ #'papersize': 'letterpaper',
270
+ # The font size ('10pt', '11pt' or '12pt').
271
+ #'pointsize': '10pt',
272
+ # Additional stuff for the LaTeX preamble.
273
+ #'preamble': '',
274
+ # Latex figure (float) alignment
275
+ #'figure_align': 'htbp',
276
+ }
277
+
278
+ # Grouping the document tree into LaTeX files. List of tuples
279
+ # (source start file, target name, title,
280
+ # author, documentclass [howto, manual, or own class]).
281
+ latex_documents = [
282
+ (
283
+ root_doc,
284
+ "googleapis-common-protos.tex",
285
+ "googleapis-common-protos Documentation",
286
+ author,
287
+ "manual",
288
+ )
289
+ ]
290
+
291
+ # The name of an image file (relative to this directory) to place at the top of
292
+ # the title page.
293
+ # latex_logo = None
294
+
295
+ # For "manual" documents, if this is true, then toplevel headings are parts,
296
+ # not chapters.
297
+ # latex_use_parts = False
298
+
299
+ # If true, show page references after internal links.
300
+ # latex_show_pagerefs = False
301
+
302
+ # If true, show URL addresses after external links.
303
+ # latex_show_urls = False
304
+
305
+ # Documents to append as an appendix to all manuals.
306
+ # latex_appendices = []
307
+
308
+ # If false, no module index is generated.
309
+ # latex_domain_indices = True
310
+
311
+
312
+ # -- Options for manual page output ---------------------------------------
313
+
314
+ # One entry per manual page. List of tuples
315
+ # (source start file, name, description, authors, manual section).
316
+ man_pages = [
317
+ (
318
+ root_doc,
319
+ "googleapis-common-protos",
320
+ "googleapis-common-protos Documentation",
321
+ [author],
322
+ 1,
323
+ )
324
+ ]
325
+
326
+ # If true, show URL addresses after external links.
327
+ # man_show_urls = False
328
+
329
+
330
+ # -- Options for Texinfo output -------------------------------------------
331
+
332
+ # Grouping the document tree into Texinfo files. List of tuples
333
+ # (source start file, target name, title, author,
334
+ # dir menu entry, description, category)
335
+ texinfo_documents = [
336
+ (
337
+ root_doc,
338
+ "googleapis-common-protos",
339
+ "googleapis-common-protos Documentation",
340
+ author,
341
+ "googleapis-common-protos",
342
+ "googleapis-common-protos Library",
343
+ "APIs",
344
+ )
345
+ ]
346
+
347
+ # Documents to append as an appendix to all manuals.
348
+ # texinfo_appendices = []
349
+
350
+ # If false, no module index is generated.
351
+ # texinfo_domain_indices = True
352
+
353
+ # How to display URL addresses: 'footnote', 'no', or 'inline'.
354
+ # texinfo_show_urls = 'footnote'
355
+
356
+ # If true, do not generate a @detailmenu in the "Top" node's menu.
357
+ # texinfo_no_detailmenu = False
358
+
359
+
360
+ # Example configuration for intersphinx: refer to the Python standard library.
361
+ intersphinx_mapping = {
362
+ "python": ("https://python.readthedocs.org/en/latest/", None),
363
+ "google-auth": ("https://googleapis.dev/python/google-auth/latest/", None),
364
+ "google.api_core": (
365
+ "https://googleapis.dev/python/google-api-core/latest/",
366
+ None,
367
+ ),
368
+ "grpc": ("https://grpc.github.io/grpc/python/", None),
369
+ "proto-plus": ("https://proto-plus-python.readthedocs.io/en/latest/", None),
370
+ "protobuf": ("https://googleapis.dev/python/protobuf/latest/", None),
371
+ }
372
+
373
+
374
+ # Napoleon settings
375
+ napoleon_google_docstring = True
376
+ napoleon_numpy_docstring = True
377
+ napoleon_include_private_with_doc = False
378
+ napoleon_include_special_with_doc = True
379
+ napoleon_use_admonition_for_examples = False
380
+ napoleon_use_admonition_for_notes = False
381
+ napoleon_use_admonition_for_references = False
382
+ napoleon_use_ivar = False
383
+ napoleon_use_param = True
384
+ napoleon_use_rtype = True
@@ -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 = self.by_key.get(req.key)
711
+ dist: Distribution | None = None
712
712
 
713
- if dist is None:
714
- canonical_key = self.normalized_to_canonical_keys.get(req.key)
713
+ candidates = (
714
+ req.key,
715
+ self.normalized_to_canonical_keys.get(req.key),
716
+ safe_name(req.key).replace(".", "-"),
717
+ )
715
718
 
716
- if canonical_key is not None:
717
- req.key = canonical_key
718
- dist = self.by_key.get(canonical_key)
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
- 'installed_dists,installable_dists,'
108
- 'requirements,replace_conflicting,'
109
- 'resolved_dists_or_exception',
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 filename_component(safe_name(value))
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
- f"`Py_GIL_DISABLED` ({sys.abiflags=!r}). "
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 "unicode.dist" in path)
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("unicode.dist-0.1.dist-info/RECORD")
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 make_nspkg_sdist
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
- make_nspkg_sdist(str(dist_dir.join(dist_sdist)), distname, version)
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"{name.replace('-', '_')}-{version}{suffix}")
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, 'foo.bar-0.1.tar.gz')
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, 'foo.bar-0.1')
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 'foo.bar-0.2' not in foo.__path__[0]:
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
- self.fail(
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'{distname}=={version}'],
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'{distname}-{version}.tar.gz')
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
- 'requires,use_setup_cfg,expected_requires,install_cmd_kwargs',
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.12rc2002542
3
+ Version: 0.1.13
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=rB_mwwCJfDNATKGHKnHBzWqxaOGfIHOTtJ_f_qsGB90,35313
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=L9eFHZndD6H7nkznJ9Bw0v8xh9IegDlhhGFHBz9EHmM,1745
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=bzWTZpY2yf_By2bOSl1GFaY3BsZpkAvwQuGztlcHKkQ,537
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=fuydd-87on31-3P0wTNTZiFn0quiY18pZdP6zRXalQs,126098
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=UMgFTBF8WN-yBOaWcsmKlr1wqEz7cu2B9OnPeXMmkMI,15207
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=ZUJ8Su47v1YfRDkf8B6nBPHcdChVdzgRcxppHTwJs9k,8539
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=t-SeXc0jU2weQY9BA3qGlRThzBND1oYK5Hpzg1_533g,4536
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=QCtkl0iSLhM5F65hACha-tAGxOdxu9dtJNBhKCa4wLI,22274
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=C3Pp7p2fUCGvuH0Idq8lCC2ABhsu4G2iN5JaocyNHQw,19906
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=HbTZp7D5NzLAh3btrU8LeuZv4SfAADa9EVubeZyu3iE,8897
1524
- py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_dist_info.py,sha256=Agy3L0M3hF5dxXwSpLJwIbgJI3ODy_bsH23cEUR2OlM,7094
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=D8hsk-Z0hYcrKoyKM8AnKR0IdVfgXDlR2yARSoXDzTc,53308
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=0Bi29Im-Pz_SvKtKVkq7sy2tYEdrvfvCOyexfTx3jyo,43963
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=7_pvWpkU4M2C1cgTcHSQPw8Az1RaaIZ9nJ7gD7P4I30,445
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
@@ -2160,6 +2160,7 @@ py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/name.py,sha256=MYCxCSTQT
2160
2160
  py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py,sha256=vbrg3p1hBJQEEFIZ35GHcjbGwTrsxPhlot-OVpyP-C8,11390
2161
2161
  py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/oid.py,sha256=X8EbhkRTLrGuv9vHZSGqPd9zpvRVsonU_joWAL5LLY8,885
2162
2162
  py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/verification.py,sha256=alfx3VaTSb2bMz7_7s788oL90vzgHwBjVINssdz0Gv0,796
2163
+ py2docfx/venv/venv1/Lib/site-packages/docs/conf.py,sha256=wWmiclfhoUtsbchRP_oRf1aJdJURdhQUEES674mVI4U,12453
2163
2164
  py2docfx/venv/venv1/Lib/site-packages/google/api/annotations_pb2.py,sha256=N4cPaBC9BCIlQOPWOQdASPi2eD3e4d6TkfdFtLYKW1M,2182
2164
2165
  py2docfx/venv/venv1/Lib/site-packages/google/api/auth_pb2.py,sha256=0M9Gb8InDi8Q07RSMmUtvVyTkaijVkhyj8Vga2XjsOQ,3601
2165
2166
  py2docfx/venv/venv1/Lib/site-packages/google/api/backend_pb2.py,sha256=pxhfZZJJM9NOtv1aLVYbtYAqrMzgUkD4GCMopWmOh9M,3774
@@ -3087,14 +3088,14 @@ py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/webencodings/labels.py,sha256=
3087
3088
  py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/webencodings/mklabels.py,sha256=GYIeywnpaLnP0GSic8LFWgd0UVvO_l1Nc6YoF-87R_4,1305
3088
3089
  py2docfx/venv/venv1/Lib/site-packages/pip/_vendor/webencodings/tests.py,sha256=OtGLyjhNY1fvkW1GvLJ_FV9ZoqC9Anyjr7q3kxTbzNs,6563
3089
3090
  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=fuydd-87on31-3P0wTNTZiFn0quiY18pZdP6zRXalQs,126098
3091
+ py2docfx/venv/venv1/Lib/site-packages/pkg_resources/__init__.py,sha256=-rh7XOnTxdGuC-_9FAyu5D6s8BL1UsBehxUtj7a-IVo,126203
3091
3092
  py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3092
3093
  py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_find_distributions.py,sha256=U91cov5L1COAIWLNq3Xy4plU7_MnOE1WtXMu6iV2waM,1972
3093
3094
  py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py,sha256=nzVoK557KZQN0V3DIQ1sVeaCOgt4Kpl-CODAWsO7pmc,1652
3094
3095
  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=UMgFTBF8WN-yBOaWcsmKlr1wqEz7cu2B9OnPeXMmkMI,15207
3096
+ py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py,sha256=5Mt4bJQhLCL8j8cC46Uv32Np2Xc1TTxLGawIfET55Fk,17111
3096
3097
  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=ZUJ8Su47v1YfRDkf8B6nBPHcdChVdzgRcxppHTwJs9k,8539
3098
+ py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/test_working_set.py,sha256=lRtGJWIixSwSMSbjHgRxeJEQiLMRXcz3xzJL2qL7eXY,8602
3098
3099
  py2docfx/venv/venv1/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py,sha256=1VobhAZbMb7M9mfhb_NE8PwDsvukoWLs9aUAS0pYhe8,105
3099
3100
  py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py,sha256=zm6QcwwGAMZ9u7Emd18lIC0atwT67O--BtXyVs9T8iY,231
3100
3101
  py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py,sha256=b-NLz4kKv2MZhYtR6m0CWneEi1KJ-tntELq2FwjY42s,2056
@@ -3483,7 +3484,7 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/_entry_points.py,sha256=Y3QUE9J
3483
3484
  py2docfx/venv/venv1/Lib/site-packages/setuptools/_imp.py,sha256=YY1EjZEN-0zYci1cxO10B_adAEOr7i8eK8JoCc9Ierc,2435
3484
3485
  py2docfx/venv/venv1/Lib/site-packages/setuptools/_importlib.py,sha256=aKIjcK0HKXNz2D-XTrxaixGn_juTkONwmu3dcheMOF0,223
3485
3486
  py2docfx/venv/venv1/Lib/site-packages/setuptools/_itertools.py,sha256=jWRfsIrpC7myooz3hDURj9GtvpswZeKXg2HakmEhNjo,657
3486
- py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py,sha256=t-SeXc0jU2weQY9BA3qGlRThzBND1oYK5Hpzg1_533g,4536
3487
+ py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py,sha256=zdSsIDjziHb-3_GYcY4UEejWQZxclOz3387qbYNZ67s,4824
3487
3488
  py2docfx/venv/venv1/Lib/site-packages/setuptools/_path.py,sha256=cPv41v03HD7uEYqCIo-E_cGRfpPVr4lywBCiK-HSrCg,2685
3488
3489
  py2docfx/venv/venv1/Lib/site-packages/setuptools/_reqs.py,sha256=QI3C9uOBSNRccu208qPnixHx51nxCry7_nPTIJaSYxM,1438
3489
3490
  py2docfx/venv/venv1/Lib/site-packages/setuptools/_shutil.py,sha256=cAOllcoyMTXs5JLoybQi29yI5gABk82hepJyOBv2bMw,1496
@@ -3719,7 +3720,7 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/command/_requirestxt.py,sha256=
3719
3720
  py2docfx/venv/venv1/Lib/site-packages/setuptools/command/alias.py,sha256=rDdrMt32DS6qf3K7tjZZyHD_dMKrm77AXcAtx-nBQ0I,2380
3720
3721
  py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_egg.py,sha256=3eDucQ4fdeYMsLO9PhBfY1JkcMLhZXgnAI_9FdFNsEE,16972
3721
3722
  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=QCtkl0iSLhM5F65hACha-tAGxOdxu9dtJNBhKCa4wLI,22274
3723
+ py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py,sha256=NKE9391SgoggEtzLC1CZNKWHDZ6k5bGrIZiaAJtpNzU,21976
3723
3724
  py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build.py,sha256=eI7STMERGGZEpzk1tvJN8p9IOjAAXMcGLzljv2mwI3M,6052
3724
3725
  py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_clib.py,sha256=AbgpPIF_3qL8fZr3JIebI-WHTMTBiMfrFkVQz8K40G4,4528
3725
3726
  py2docfx/venv/venv1/Lib/site-packages/setuptools/command/build_ext.py,sha256=bUH4M0NizaJJrv10wK-ZD3uY0TxCSZlYQDhiwwzHslM,18377
@@ -3765,7 +3766,7 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/server.py,sha256=0FDZf0cS
3765
3766
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_archive_util.py,sha256=buuKdY8XkW26Pe3IKAoBRGHG0MDumnuNoPg2WsAQzIg,845
3766
3767
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py,sha256=75Xq3gYn79LIIyusEltbHan0bEgAt2e_CaL7KLS8-KQ,775
3767
3768
  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=C3Pp7p2fUCGvuH0Idq8lCC2ABhsu4G2iN5JaocyNHQw,19906
3769
+ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py,sha256=9JY8c6jH_WVPYnkx_0aEnaoHBMzKAWpkUlRJRmrm6GM,19906
3769
3770
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build.py,sha256=wJgMz2hwHADcLFg-nXrwRVhus7hjmAeEGgrpIQwCGnA,798
3770
3771
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_clib.py,sha256=bX51XRAf4uO7IuHFpjePnoK8mE74N2gsoeEqF-ofgws,3123
3771
3772
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_ext.py,sha256=e4ZSxsYPB5zq1KSqGEuATZ0t0PJQzMhjjkKJ-hIjcgc,10099
@@ -3775,12 +3776,12 @@ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_config_discovery.py,
3775
3776
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py,sha256=FpnPjsuRnA-8jRDvBe2oI_3vivwjNTPuF2CswCONXA4,19102
3776
3777
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_depends.py,sha256=yQBXoQbNQlJit6mbRVoz6Bb553f3sNrq02lZimNz5XY,424
3777
3778
  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=HbTZp7D5NzLAh3btrU8LeuZv4SfAADa9EVubeZyu3iE,8897
3779
- py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py,sha256=Agy3L0M3hF5dxXwSpLJwIbgJI3ODy_bsH23cEUR2OlM,7094
3779
+ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist.py,sha256=GFjyL2etAxvVM3q7NhFEGcXS5gyKj8VzbqcbKzpqbOk,8901
3780
+ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_dist_info.py,sha256=5kBRj9tuBsVreBsY22H2feMO_JQZsSoOZMU_MJfUevY,7077
3780
3781
  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=D8hsk-Z0hYcrKoyKM8AnKR0IdVfgXDlR2yARSoXDzTc,53308
3782
+ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_easy_install.py,sha256=jx4lpFyee0G432cdnwBow3AkL4ibw-0QILwldwv5SCI,53534
3782
3783
  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=0Bi29Im-Pz_SvKtKVkq7sy2tYEdrvfvCOyexfTx3jyo,43963
3784
+ py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py,sha256=wLQmM9grgJnYjazzxGV5pd_UAgamTtKPsHXFZmGYRd8,44073
3784
3785
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_extern.py,sha256=rpKU6oCcksumLwf5TeKlDluFQ0TUfbPwTLQbpxcFrCU,296
3785
3786
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_find_packages.py,sha256=CTLAcTzWGWBLCcd2aAsUVkvO3ibrlqexFBdDKOWPoq8,7819
3786
3787
  py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_find_py_modules.py,sha256=zQjuhIG5TQN2SJPix9ARo4DL_w84Ln8QsHDUjjbrtAQ,2404
@@ -4194,7 +4195,7 @@ py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtas
4194
4195
  py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py,sha256=08ojAS48W6RLsUbRD45j0SJhg_Y2NFHZT6qjT4Vrig0,75
4195
4196
  py2docfx/venv/venv1/Scripts/pywin32_postinstall.py,sha256=u95n7QQUxpCjrZistYE-3gN451zXzopuJna8cXRQ4Jw,28115
4196
4197
  py2docfx/venv/venv1/Scripts/pywin32_testall.py,sha256=-6yvZmd2lPQc4e8i6PgLsr_totF6mScvoq0Jqr0V2fM,3844
4197
- py2docfx-0.1.12rc2002542.dist-info/METADATA,sha256=O-nUwPpHPUNhpC5NUbimpeDSG5kwbR_KOSGkIvzG5JQ,599
4198
- py2docfx-0.1.12rc2002542.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
4199
- py2docfx-0.1.12rc2002542.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
4200
- py2docfx-0.1.12rc2002542.dist-info/RECORD,,
4198
+ py2docfx-0.1.13.dist-info/METADATA,sha256=rOC70HxqRqia0ATGShBLBbZ7LUr32rdiYM_HftpHq7w,590
4199
+ py2docfx-0.1.13.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
4200
+ py2docfx-0.1.13.dist-info/top_level.txt,sha256=5dH2uP81dczt_qQJ38wiZ-gzoVWasfiJALWRSjdbnYU,9
4201
+ py2docfx-0.1.13.dist-info/RECORD,,