gpt2-small-repla / gpt2eval_env /lib /python3.11 /site-packages /setuptools /tests /test_dist_info.py
Download gpt2eval_env/lib/python3.11/site-packages/setuptools/tests/test_dist_info.py from michaelxing/gpt2-small-repla: direct link, hf CLI and curl.
- Browser
- Download file 7.08 kB
-
https://huggingface.co/michaelxing/gpt2-small-repla/resolve/main/gpt2eval_env/lib/python3.11/site-packages/setuptools/tests/test_dist_info.py
- Command line
-
hf download hf://michaelxing/gpt2-small-repla/gpt2eval_env/lib/python3.11/site-packages/setuptools/tests/test_dist_info.py
-
curl -L -o test_dist_info.py https://huggingface.co/michaelxing/gpt2-small-repla/resolve/main/gpt2eval_env/lib/python3.11/site-packages/setuptools/tests/test_dist_info.py
7.08 kB
| """Test .dist-info style distributions.""" | |
| import pathlib | |
| import re | |
| import shutil | |
| import subprocess | |
| import sys | |
| from functools import partial | |
| import pytest | |
| import pkg_resources | |
| from setuptools.archive_util import unpack_archive | |
| from .textwrap import DALS | |
| read = partial(pathlib.Path.read_text, encoding="utf-8") | |
| class TestDistInfo: | |
| metadata_base = DALS( | |
| """ | |
| Metadata-Version: 1.2 | |
| Requires-Dist: splort (==4) | |
| Provides-Extra: baz | |
| Requires-Dist: quux (>=1.1); extra == 'baz' | |
| """ | |
| ) | |
| def build_metadata(cls, **kwargs): | |
| lines = ('{key}: {value}\n'.format(**locals()) for key, value in kwargs.items()) | |
| return cls.metadata_base + ''.join(lines) | |
| def metadata(self, tmpdir): | |
| dist_info_name = 'VersionedDistribution-2.718.dist-info' | |
| versioned = tmpdir / dist_info_name | |
| versioned.mkdir() | |
| filename = versioned / 'METADATA' | |
| content = self.build_metadata( | |
| Name='VersionedDistribution', | |
| ) | |
| filename.write_text(content, encoding='utf-8') | |
| dist_info_name = 'UnversionedDistribution.dist-info' | |
| unversioned = tmpdir / dist_info_name | |
| unversioned.mkdir() | |
| filename = unversioned / 'METADATA' | |
| content = self.build_metadata( | |
| Name='UnversionedDistribution', | |
| Version='0.3', | |
| ) | |
| filename.write_text(content, encoding='utf-8') | |
| return str(tmpdir) | |
| def test_distinfo(self, metadata): | |
| dists = dict( | |
| (d.project_name, d) for d in pkg_resources.find_distributions(metadata) | |
| ) | |
| assert len(dists) == 2, dists | |
| unversioned = dists['UnversionedDistribution'] | |
| versioned = dists['VersionedDistribution'] | |
| assert versioned.version == '2.718' # from filename | |
| assert unversioned.version == '0.3' # from METADATA | |
| def test_conditional_dependencies(self, metadata): | |
| specs = 'splort==4', 'quux>=1.1' | |
| requires = list(map(pkg_resources.Requirement.parse, specs)) | |
| for d in pkg_resources.find_distributions(metadata): | |
| assert d.requires() == requires[:1] | |
| assert d.requires(extras=('baz',)) == [ | |
| requires[0], | |
| pkg_resources.Requirement.parse('quux>=1.1;extra=="baz"'), | |
| ] | |
| assert d.extras == ['baz'] | |
| def test_invalid_version(self, tmp_path): | |
| """ | |
| Supplying an invalid version crashes dist_info. | |
| """ | |
| config = "[metadata]\nname=proj\nversion=42\n[egg_info]\ntag_build=invalid!!!\n" | |
| (tmp_path / "setup.cfg").write_text(config, encoding="utf-8") | |
| msg = re.compile("invalid version", re.M | re.I) | |
| proc = run_command_inner("dist_info", cwd=tmp_path, check=False) | |
| assert proc.returncode | |
| assert msg.search(proc.stdout) | |
| assert not list(tmp_path.glob("*.dist-info")) | |
| def test_tag_arguments(self, tmp_path): | |
| config = """ | |
| [metadata] | |
| name=proj | |
| version=42 | |
| [egg_info] | |
| tag_date=1 | |
| tag_build=.post | |
| """ | |
| (tmp_path / "setup.cfg").write_text(config, encoding="utf-8") | |
| print(run_command("dist_info", "--no-date", cwd=tmp_path)) | |
| dist_info = next(tmp_path.glob("*.dist-info")) | |
| assert dist_info.name.startswith("proj-42") | |
| shutil.rmtree(dist_info) | |
| print(run_command("dist_info", "--tag-build", ".a", cwd=tmp_path)) | |
| dist_info = next(tmp_path.glob("*.dist-info")) | |
| assert dist_info.name.startswith("proj-42a") | |
| def test_output_dir(self, tmp_path, keep_egg_info): | |
| config = "[metadata]\nname=proj\nversion=42\n" | |
| (tmp_path / "setup.cfg").write_text(config, encoding="utf-8") | |
| out = tmp_path / "__out" | |
| out.mkdir() | |
| opts = ["--keep-egg-info"] if keep_egg_info else [] | |
| run_command("dist_info", "--output-dir", out, *opts, cwd=tmp_path) | |
| assert len(list(out.glob("*.dist-info"))) == 1 | |
| assert len(list(tmp_path.glob("*.dist-info"))) == 0 | |
| expected_egg_info = int(keep_egg_info) | |
| assert len(list(out.glob("*.egg-info"))) == expected_egg_info | |
| assert len(list(tmp_path.glob("*.egg-info"))) == 0 | |
| assert len(list(out.glob("*.__bkp__"))) == 0 | |
| assert len(list(tmp_path.glob("*.__bkp__"))) == 0 | |
| class TestWheelCompatibility: | |
| """Make sure the .dist-info directory produced with the ``dist_info`` command | |
| is the same as the one produced by ``bdist_wheel``. | |
| """ | |
| SETUPCFG = DALS( | |
| """ | |
| [metadata] | |
| name = {name} | |
| version = {version} | |
| [options] | |
| install_requires = | |
| foo>=12; sys_platform != "linux" | |
| [options.extras_require] | |
| test = pytest | |
| [options.entry_points] | |
| console_scripts = | |
| executable-name = my_package.module:function | |
| discover = | |
| myproj = my_package.other_module:function | |
| """ | |
| ) | |
| EGG_INFO_OPTS = [ | |
| # Related: #3088 #2872 | |
| ("", ""), | |
| (".post", "[egg_info]\ntag_build = post\n"), | |
| (".post", "[egg_info]\ntag_build = .post\n"), | |
| (".post", "[egg_info]\ntag_build = post\ntag_date = 1\n"), | |
| (".dev", "[egg_info]\ntag_build = .dev\n"), | |
| (".dev", "[egg_info]\ntag_build = .dev\ntag_date = 1\n"), | |
| ("a1", "[egg_info]\ntag_build = .a1\n"), | |
| ("+local", "[egg_info]\ntag_build = +local\n"), | |
| ] | |
| def test_dist_info_is_the_same_as_in_wheel( | |
| self, name, version, tmp_path, suffix, cfg | |
| ): | |
| config = self.SETUPCFG.format(name=name, version=version) + cfg | |
| for i in "dir_wheel", "dir_dist": | |
| (tmp_path / i).mkdir() | |
| (tmp_path / i / "setup.cfg").write_text(config, encoding="utf-8") | |
| run_command("bdist_wheel", cwd=tmp_path / "dir_wheel") | |
| wheel = next(tmp_path.glob("dir_wheel/dist/*.whl")) | |
| unpack_archive(wheel, tmp_path / "unpack") | |
| wheel_dist_info = next(tmp_path.glob("unpack/*.dist-info")) | |
| run_command("dist_info", cwd=tmp_path / "dir_dist") | |
| dist_info = next(tmp_path.glob("dir_dist/*.dist-info")) | |
| assert dist_info.name == wheel_dist_info.name | |
| assert dist_info.name.startswith(f"my_proj-{version}{suffix}") | |
| for file in "METADATA", "entry_points.txt": | |
| assert read(dist_info / file) == read(wheel_dist_info / file) | |
| def run_command_inner(*cmd, **kwargs): | |
| opts = { | |
| "stderr": subprocess.STDOUT, | |
| "stdout": subprocess.PIPE, | |
| "text": True, | |
| "encoding": "utf-8", | |
| "check": True, | |
| **kwargs, | |
| } | |
| cmd = [sys.executable, "-c", "__import__('setuptools').setup()", *map(str, cmd)] | |
| return subprocess.run(cmd, **opts) | |
| def run_command(*args, **kwargs): | |
| return run_command_inner(*args, **kwargs).stdout | |