python类Version()的实例源码

test_package.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def test_versions_condaforge(self):
        self.assertSetEqual({Version('1.0'), Version('1.2'), Version('2.0')}, self.pkg_a.versions_condaforge)
        self.assertSetEqual(set(), self.pkg_bad.versions_condaforge)
test_package.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def test__external_versions(self):
        self.assertSetEqual({Version('1.0'), Version('1.2'), Version('2.0')}, set(self.pkg_a._external_versions))
        self.assertSetEqual(set(), set(self.pkg_bad._external_versions))
test_package.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def test__external_upgradeable_versions(self):
        class Patch(Package):
            versions_condaforge = {Version('1.0'), Version('1.2')}  # missing 2.0
        self.pkg_a.__class__ = Patch

        self.assertSetEqual({Version('2.0')}, set(self.pkg_a._external_upgradeable_versions))

        # TODO: test other cases, including dev versions
test_package.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def test_latest_feedstock_version(self):
        self.assertEqual(Version('2.0'), self.pkg_a.latest_feedstock_version)
        self.assertIsNone(self.pkg_bad.latest_feedstock_version)
test_package.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def test_latest_external_version(self):
        self.assertEqual(Version('2.0'), self.pkg_a.latest_external_version)
        self.assertIsNone(self.pkg_bad.latest_external_version)
test_feedstockrot.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 15 收藏 0 点赞 0 评论 0
def test_add_repositories(self):
        repositories_good = [
            Repository(None, None, {"name": "package_a-feedstock", "owner": {"login": "conda-forge"}}, True),
            Repository(None, None, {"name": "package_b-feedstock", "owner": {"login": "conda-forge"}}, True),
        ]
        repositories_bad_owner = [
            Repository(None, None, {"name": "package_a-feedstock", "owner": {"login": "johnsmith"}}, True),
            Repository(None, None, {"name": "package_c-feedstock", "owner": {"login": "joesmith"}}, True),
        ]
        repositories_bad_name = [
            Repository(None, None, {"name": "package_d", "owner": {"login": "conda-forge"}}, True),
        ]
        repositories_bad_name_owner = [
            Repository(None, None, {"name": "package_e", "owner": {"login": "conda-forge"}}, True),
        ]

        repositories = repositories_good + repositories_bad_owner + repositories_bad_name + repositories_bad_name_owner
        package_names = {'package_a', 'package_b', 'package_c', 'package_d', 'package_e'}
        with Mocker(CondaforgeRepoMock(*package_names), PypiMock().expected_missing(2)):
            self.rot.add_repositories(repositories)
        rot_packages = self.rot.packages.copy()

        self.assertEqual(len(repositories_good), len(rot_packages))

        for pkg in rot_packages:  # type: Package
            if pkg.get_name() == 'package_a':
                self.assertEqual(Version('2.0'), pkg.latest_feedstock_version)
                self.assertIsNone(pkg.latest_external_version) # we're responding with a 404 to pypi
                self.assertIsNone(pkg.latest_external_upgradeable_version)
            elif pkg.get_name() == 'package_b':
                self.assertEqual(Version('1.0'), pkg.latest_feedstock_version)
                self.assertIsNone(pkg.latest_external_version) # we're responding with a 404 to pypi
                self.assertIsNone(pkg.latest_external_upgradeable_version)
            else:
                self.assertIsNone(pkg.get_name())
test_pypi.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def test_versions(self):
        pkg = Package('package_a')
        with Mocker(PypiMock(pkg.name)):
            src = Pypi(pkg)
            result = src.versions

        self.assertSetEqual({Version('1.0'), Version('1.2'), Version('2.0')}, result)

        pkg = Package('package_z')
        with Mocker(PypiMock(pkg.name)):
            src = Pypi(pkg)
            result = src.versions

        self.assertSetEqual({Version('0.1')}, result)
test_github.py 文件源码 项目:feedstockrot 作者: axiom-data-science 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_versions(self):
        pkg = PackageInfoFake('package_g', ['https://github.com/package_g/package_g'])
        with Mocker(GithubMock(pkg.name)):
            src = Github(pkg)
            result = src.versions

        self.assertSetEqual({Version('1.0'), Version('1.5')}, result)

        pkg = PackageInfoFake('package_z', ['https://github.com/package_z/package_z'])
        with Mocker(GithubMock(pkg.name)):
            src = Github(pkg)
            result = src.versions

        self.assertSetEqual({Version('0.1')}, result)
poet.py 文件源码 项目:poet 作者: sdispater 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def normalized_version(self):
        """
        Return a PEP 440 compatible version.

        :rtype: str
        """
        return str(PackageVersion(self._version))
pyscss.py 文件源码 项目:WhatTheHack 作者: Sylphias 项目源码 文件源码 阅读 14 收藏 0 点赞 0 评论 0
def setup(self):
        super(PyScss, self).setup()

        import scss
        self.scss = scss

        if self.style:
            try:
                from packaging.version import Version
            except ImportError:
                from distutils.version import LooseVersion as Version
            assert Version(scss.__version__) >= Version('1.2.0'), \
                'PYSCSS_STYLE only supported in pyScss>=1.2.0'

        # Initialize various settings:
        # Why are these module-level, not instance-level ?!
        # TODO: It appears that in the current dev version, the
        # settings can finally passed to a constructor. We'll need
        # to support this.

        # Only the dev version appears to support a list
        if self.load_paths:
            scss.config.LOAD_PATHS = ','.join(self.load_paths)

        # These are needed for various helpers (working with images
        # etc.). Similar to the compass filter, we require the user
        # to specify such paths relative to the media directory.
        try:
            scss.config.STATIC_ROOT = self.static_root or self.ctx.directory
            scss.config.STATIC_URL = self.static_url or self.ctx.url
        except EnvironmentError:
            raise EnvironmentError('Because Environment.url and/or '
                'Environment.directory are not set, you need to '
                'provide values for the PYSCSS_STATIC_URL and/or '
                'PYSCSS_STATIC_ROOT settings.')

        # This directory PyScss will use when generating new files,
        # like a spritemap. Maybe we should REQUIRE this to be set.
        scss.config.ASSETS_ROOT = self.assets_root or scss.config.STATIC_ROOT
        scss.config.ASSETS_URL = self.assets_url or scss.config.STATIC_URL
azure_rm.py 文件源码 项目:ansible-hortonworks 作者: hortonworks 项目源码 文件源码 阅读 16 收藏 0 点赞 0 评论 0
def main():
    if not HAS_AZURE:
        sys.exit("The Azure python sdk is not installed (try `pip install 'azure>=2.0.0rc5' --upgrade`) - {0}".format(HAS_AZURE_EXC))

    if Version(azure_compute_version) < Version(AZURE_MIN_VERSION):
        sys.exit("Expecting azure.mgmt.compute.__version__ to be {0}. Found version {1} "
                 "Do you have Azure >= 2.0.0rc5 installed? (try `pip install 'azure>=2.0.0rc5' --upgrade`)".format(AZURE_MIN_VERSION, azure_compute_version))

    AzureInventory()
__init__.py 文件源码 项目:python-dse-driver 作者: datastax 项目源码 文件源码 阅读 14 收藏 0 点赞 0 评论 0
def _get_cass_version_from_dse(dse_version):
    if dse_version.startswith('4.6') or dse_version.startswith('4.5'):
        raise Exception("Cassandra Version 2.0 not supported anymore")
    elif dse_version.startswith('4.7') or dse_version.startswith('4.8'):
        cass_ver = "2.1"
    elif dse_version.startswith('5.0'):
        cass_ver = "3.0"
    elif dse_version.startswith('5.1'):
        cass_ver = "3.1"
    else:
        log.error("Uknown dse version found {0}, defaulting to 2.1".format(dse_version))
        cass_ver = "2.1"

    return cass_ver
__init__.py 文件源码 项目:python-dse-driver 作者: datastax 项目源码 文件源码 阅读 15 收藏 0 点赞 0 评论 0
def get_default_protocol():

    if Version(CASSANDRA_VERSION) >= Version('3.10'):
        return ProtocolVersion.DSE_V1
    if Version(CASSANDRA_VERSION) >= Version('2.2'):
        return 4
    elif Version(CASSANDRA_VERSION) >= Version('2.1'):
        return 3
    elif Version(CASSANDRA_VERSION) >= Version('2.0'):
        raise Exception("Cassandra Version 2.0 not supported anymore")
    else:
        raise Exception("Running tests with an unsupported Cassandra version: {0}".format(CASSANDRA_VERSION))
__init__.py 文件源码 项目:python-dse-driver 作者: datastax 项目源码 文件源码 阅读 15 收藏 0 点赞 0 评论 0
def is_protocol_beta(protocol):
    if Version(CASSANDRA_VERSION) >= Version('3.10') and protocol == 5:
        return True
    else:
        return False
__init__.py 文件源码 项目:python-dse-driver 作者: datastax 项目源码 文件源码 阅读 14 收藏 0 点赞 0 评论 0
def get_unsupported_upper_protocol():
    """
    This is used to determine the highest protocol version that is NOT
    supported by the version of C* running
    """

    if Version(CASSANDRA_VERSION) >= Version('2.2'):
        return None
    if Version(CASSANDRA_VERSION) >= Version('2.1'):
        return 4
    elif Version(CASSANDRA_VERSION) >= Version('2.0'):
        raise Exception("Cassandra Version 2.0 not supported anymore")
    else:
        return None
packages_status_detector.py 文件源码 项目:pip-upgrader 作者: simion 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def detect_available_upgrades(self, options):
        self._prerelease = options.get('--prerelease', False)
        explicit_packages_lower = None
        if options['-p'] and options['-p'] != ['all']:
            explicit_packages_lower = [pack_name.lower() for pack_name in options['-p']]

        for i, package in enumerate(self.packages):
            try:
                package_name, pinned_version = self._expand_package(package)
                if not package_name or not pinned_version:  # pragma: nocover
                    # todo: treat <= or >= instead of ==
                    continue

                if explicit_packages_lower and package_name.lower() not in explicit_packages_lower:
                    # skip if explicit and not chosen
                    continue

                current_version = version.parse(pinned_version)

                if pinned_version and isinstance(current_version, version.Version):  # version parsing is correct
                    package_status, reason = self._fetch_index_package_info(package_name, current_version)
                    if not package_status:  # pragma: nocover
                        print(package, reason)
                        continue

                    print('{}/{}: {} ... '.format(i + 1, len(self.packages), package_name), end='')
                    sys.stdout.flush()

                    # compare versions
                    if current_version < package_status['latest_version']:
                        print('upgrade available: {} ==> {} (uploaded on {})'.format(current_version,
                                                                                     package_status['latest_version'],
                                                                                     package_status['upload_time']))
                    else:
                        print('up to date: {}'.format(current_version))
                    sys.stdout.flush()

                    self.packages_status_map[package_name] = package_status
            except Exception as e:  # noqa  # pragma: nocover
                print('Error while parsing package {} (skipping). \nException: '.format(package), e)

        return self.packages_status_map


问题


面经


文章

微信
公众号

扫码关注公众号