コード例 #1
0
    def download_package(clazz, system, full_version, debug=False):
        'Download the major.minor.revision full version of python to a temporary file.'
        if check.is_string(full_version):
            full_version = python_version(full_version)
        check.check_python_version(full_version)

        url = clazz.find_package_url(system, full_version)
        return clazz._downlod_url(url, debug=False)
コード例 #2
0
    def _brew_formula_to_python_version(clazz, brew_version):
        check.check_string(brew_version)

        f = re.findall(r'^python\@(\d\.\d)$', brew_version)
        if not f:
            return None
        if len(f) != 1:
            return None
        return python_version(f[0])
コード例 #3
0
    def possible_package_urls(clazz, system, full_version):
        'Return the package url for a specific version of python for system.'
        if check.is_string(full_version):
            full_version = python_version(full_version)
        check.check_python_version(full_version)

        source = python_source.find_impl(system)
        filenames = source.possible_python_dot_org_installer_filenames(
            full_version)
        return [url_compat.urljoin(clazz._BASE_URL, f) for f in filenames]
コード例 #4
0
    def _full_version_for_url(clazz, url):
        'Download the major.minor.revision full version of python to a temporary file.'

        f = re.findall(
            r'^https://www.python.org/ftp/python/(\d+\.\d+\.\d+)/.*$', url)
        if not f:
            return None
        if len(f) != 1:
            return None
        return python_version(f[0])
コード例 #5
0
 def test_major_version(self):
     self.assertEqual(python_version('1'),
                      python_version('1.2.3').major_version)
     self.assertEqual(python_version('1'),
                      python_version('1.2').major_version)
     self.assertEqual(python_version('1'),
                      python_version('1').major_version)
コード例 #6
0
    def _download_available_index(clazz):
        'Download and parse the available python version index.'

        response = url_util.get('https://www.python.org/ftp/python/')
        content = response.content.decode('utf-8')
        lines = text_line_parser.parse_lines(content,
                                             strip_comments=False,
                                             strip_text=True,
                                             remove_empties=True)
        result = python_version_list()
        for line in lines:
            f = re.findall(r'^.*href=\"(\d+\.\d+.*)\/\".*$', line)
            if len(f) == 1:
                v = python_version(f[0])
                if v.is_full_version():
                    result.append(v)
        return result
コード例 #7
0
 def test___str__(self):
     self.assertEqual('1.2.3', str(python_version('1.2.3')))
     self.assertEqual('1.2', str(python_version('1.2')))
     self.assertEqual('1', str(python_version('1')))
コード例 #8
0
 def test_join_parts(self):
     self.assertEqual('6', python_version('6').join_parts(''))
     self.assertEqual('67', python_version('6.7').join_parts(''))
     self.assertEqual('678', python_version('6.7.8').join_parts(''))
コード例 #9
0
 def test_major(self):
     self.assertEqual(6, python_version('6').major)
     self.assertEqual(6, python_version('6.7').major)
     self.assertEqual(6, python_version('6.8').major)
コード例 #10
0
 def test_is_major_version(self):
     self.assertTrue(python_version('6').is_major_version())
     self.assertFalse(python_version('6.7.8').is_major_version())
     self.assertFalse(python_version('6.7').is_major_version())
コード例 #11
0
 def test_full_version(self):
     self.assertEqual(python_version('1.2.3'),
                      python_version('1.2.3').full_version)
コード例 #12
0
 def test_parts(self):
     self.assertEqual((1, 2, 3), python_version('1.2.3').parts)
     self.assertEqual((1, 2), python_version('1.2').parts)
     self.assertEqual((1, ), python_version('1').parts)
コード例 #13
0
 def test___eq__(self):
     self.assertTrue(python_version('1.2.3') == python_version('1.2.3'))
     self.assertFalse(python_version('1.2.3') == python_version('1.2.4'))
コード例 #14
0
 def test___len__(self):
     self.assertEqual(3, len(python_version('1.2.3')))
     self.assertEqual(2, len(python_version('1.2')))
     self.assertEqual(1, len(python_version('1')))
コード例 #15
0
 def _make_filter_by_major_version_list(clazz, s, v):
     l = clazz._make_list(s)
     return l.filter_by_major_version(python_version(v))
コード例 #16
0
 def _make_list(clazz, s):
     parts = [p for p in s.split(' ') if p]
     return python_version_list([python_version(p) for p in parts])