[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.139.237.50: ~ $
# This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
from __future__ import absolute_import, division, print_function

import re

from ._typing import TYPE_CHECKING, cast
from .version import InvalidVersion, Version

if TYPE_CHECKING:  # pragma: no cover
    from typing import NewType, Union

    NormalizedName = NewType("NormalizedName", str)

_canonicalize_regex = re.compile(r"[-_.]+")


def canonicalize_name(name):
    # type: (str) -> NormalizedName
    # This is taken from PEP 503.
    value = _canonicalize_regex.sub("-", name).lower()
    return cast("NormalizedName", value)


def canonicalize_version(_version):
    # type: (str) -> Union[Version, str]
    """
    This is very similar to Version.__str__, but has one subtle difference
    with the way it handles the release segment.
    """

    try:
        version = Version(_version)
    except InvalidVersion:
        # Legacy versions cannot be normalized
        return _version

    parts = []

    # Epoch
    if version.epoch != 0:
        parts.append("{0}!".format(version.epoch))

    # Release segment
    # NB: This strips trailing '.0's to normalize
    parts.append(re.sub(r"(\.0)+$", "", ".".join(str(x) for x in version.release)))

    # Pre-release
    if version.pre is not None:
        parts.append("".join(str(x) for x in version.pre))

    # Post-release
    if version.post is not None:
        parts.append(".post{0}".format(version.post))

    # Development release
    if version.dev is not None:
        parts.append(".dev{0}".format(version.dev))

    # Local version segment
    if version.local is not None:
        parts.append("+{0}".format(version.local))

    return "".join(parts)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__about__.py File 736 B 0644
__init__.py File 562 B 0644
_compat.py File 1.1 KB 0644
_structures.py File 1.97 KB 0644
_typing.py File 1.77 KB 0644
markers.py File 9.29 KB 0644
requirements.py File 4.81 KB 0644
specifiers.py File 31.2 KB 0644
tags.py File 23.5 KB 0644
utils.py File 1.77 KB 0644
version.py File 15.11 KB 0644