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
|