$49 GRAYBYTE WORDPRESS FILE MANAGER $79

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/python311/lib/python3.11/site-packages/setuptools/command/

HOME
Current File : /opt/alt/python311/lib/python3.11/site-packages/setuptools/command//dist_info.py
"""
Create a dist_info directory
As defined in the wheel specification
"""

import os
import re
import shutil
import sys
import warnings
from contextlib import contextmanager
from inspect import cleandoc
from pathlib import Path

from distutils.core import Command
from distutils import log
from setuptools.extern import packaging
from setuptools._deprecation_warning import SetuptoolsDeprecationWarning


class dist_info(Command):

    description = 'create a .dist-info directory'

    user_options = [
        ('egg-base=', 'e', "directory containing .egg-info directories"
                           " (default: top of the source tree)"
                           " DEPRECATED: use --output-dir."),
        ('output-dir=', 'o', "directory inside of which the .dist-info will be"
                             "created (default: top of the source tree)"),
        ('tag-date', 'd', "Add date stamp (e.g. 20050528) to version number"),
        ('tag-build=', 'b', "Specify explicit tag to add to version number"),
        ('no-date', 'D', "Don't include date stamp [default]"),
        ('keep-egg-info', None, "*TRANSITIONAL* will be removed in the future"),
    ]

    boolean_options = ['tag-date', 'keep-egg-info']
    negative_opt = {'no-date': 'tag-date'}

    def initialize_options(self):
        self.egg_base = None
        self.output_dir = None
        self.name = None
        self.dist_info_dir = None
        self.tag_date = None
        self.tag_build = None
        self.keep_egg_info = False

    def finalize_options(self):
        if self.egg_base:
            msg = "--egg-base is deprecated for dist_info command. Use --output-dir."
            warnings.warn(msg, SetuptoolsDeprecationWarning)
            self.output_dir = self.egg_base or self.output_dir

        dist = self.distribution
        project_dir = dist.src_root or os.curdir
        self.output_dir = Path(self.output_dir or project_dir)

        egg_info = self.reinitialize_command("egg_info")
        egg_info.egg_base = str(self.output_dir)

        if self.tag_date:
            egg_info.tag_date = self.tag_date
        else:
            self.tag_date = egg_info.tag_date

        if self.tag_build:
            egg_info.tag_build = self.tag_build
        else:
            self.tag_build = egg_info.tag_build

        egg_info.finalize_options()
        self.egg_info = egg_info

        name = _safe(dist.get_name())
        version = _version(dist.get_version())
        self.name = f"{name}-{version}"
        self.dist_info_dir = os.path.join(self.output_dir, f"{self.name}.dist-info")

    @contextmanager
    def _maybe_bkp_dir(self, dir_path: str, requires_bkp: bool):
        if requires_bkp:
            bkp_name = f"{dir_path}.__bkp__"
            _rm(bkp_name, ignore_errors=True)
            _copy(dir_path, bkp_name, dirs_exist_ok=True, symlinks=True)
            try:
                yield
            finally:
                _rm(dir_path, ignore_errors=True)
                shutil.move(bkp_name, dir_path)
        else:
            yield

    def run(self):
        self.output_dir.mkdir(parents=True, exist_ok=True)
        self.egg_info.run()
        egg_info_dir = self.egg_info.egg_info
        assert os.path.isdir(egg_info_dir), ".egg-info dir should have been created"

        log.info("creating '{}'".format(os.path.abspath(self.dist_info_dir)))
        bdist_wheel = self.get_finalized_command('bdist_wheel')

        # TODO: if bdist_wheel if merged into setuptools, just add "keep_egg_info" there
        with self._maybe_bkp_dir(egg_info_dir, self.keep_egg_info):
            bdist_wheel.egg2dist(egg_info_dir, self.dist_info_dir)


def _safe(component: str) -> str:
    """Escape a component used to form a wheel name according to PEP 491"""
    return re.sub(r"[^\w\d.]+", "_", component)


def _version(version: str) -> str:
    """Convert an arbitrary string to a version string."""
    v = version.replace(' ', '.')
    try:
        return str(packaging.version.Version(v)).replace("-", "_")
    except packaging.version.InvalidVersion:
        msg = f"""Invalid version: {version!r}.
        !!\n\n
        ###################
        # Invalid version #
        ###################
        {version!r} is not valid according to PEP 440.\n
        Please make sure specify a valid version for your package.
        Also note that future releases of setuptools may halt the build process
        if an invalid version is given.
        \n\n!!
        """
        warnings.warn(cleandoc(msg))
        return _safe(v).strip("_")


def _rm(dir_name, **opts):
    if os.path.isdir(dir_name):
        shutil.rmtree(dir_name, **opts)


def _copy(src, dst, **opts):
    if sys.version_info < (3, 8):
        opts.pop("dirs_exist_ok", None)
    shutil.copytree(src, dst, **opts)


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Mar 2024 10.48 PM
root / linksafe
0755
__pycache__
--
3 Mar 2024 10.48 PM
root / linksafe
0755
__init__.py
0.387 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
alias.py
2.325 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
bdist_egg.py
16.233 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
bdist_rpm.py
1.154 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
build.py
6.435 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
build_clib.py
4.319 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
build_ext.py
15.45 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
build_py.py
13.784 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
develop.py
6.848 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
dist_info.py
4.688 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
easy_install.py
83.654 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
editable_wheel.py
30.457 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
egg_info.py
26.167 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
install.py
5.042 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
install_egg_info.py
2.174 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
install_lib.py
3.784 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
install_scripts.py
2.551 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
launcher manifest.xml
0.613 KB
13 Nov 2023 10.03 PM
root / root
0644
py36compat.py
4.83 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
register.py
0.457 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
rotate.py
2.078 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
saveopts.py
0.643 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
sdist.py
6.905 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
setopt.py
4.967 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
test.py
7.912 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
upload.py
0.451 KB
13 Nov 2023 10.03 PM
root / linksafe
0644
upload_docs.py
7.295 KB
13 Nov 2023 10.03 PM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF