python3-babel: bumped for python 3.9
This commit is contained in:
parent
68e48d2e94
commit
a58baf09bd
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,8 @@
|
||||
untrusted comment: verify with /etc/ports/contrib.pub
|
||||
RWSagIOpLGJF34eV1JdtyOrkNA8OBfDipGXHh44lX5GG1SMdwjKJ51b+igWw6Xkes9jQ/r3SJpT+o+ycbRHHWm1ovnAJIx2OjAU=
|
||||
SHA256 (Pkgfile) = ae46657ad12c4bbc0eee4940022dd74f792495a34c36e75ec7133589d8d22b61
|
||||
SHA256 (.footprint) = a96cba421200fea53b0e6fa7586017ab053cc088e1c6eb293299300294a2ff07
|
||||
RWSagIOpLGJF38+xpkrGoSnM1V7IZt/EeaHxCF1doNQhFW3R45FVztiHWA6tIysSHxpFSOa2HesKy3+7SZDuml1XHmOzgLTbdQk=
|
||||
SHA256 (Pkgfile) = 77347cfb1f54146861dc4ac64b4661cf65e0766434ea8873bffc02ce1f98db5f
|
||||
SHA256 (.footprint) = 862f0d5e1f8afa5a91e17a2774f3be1bac0ea1ce85564ce626c96f8dd2a43534
|
||||
SHA256 (python3-babel-2.8.0.tar.gz) = 2d4d29e73e85afd10ff260579303b5479b332eadc393663089dceb14ff6f8b9c
|
||||
SHA256 (cldr-common-36.0.zip) = 07279e56c1f4266d140b907ef3ec379dce0a99542303a9628562ac5fe460ba43
|
||||
SHA256 (0001-py39.patch) = 4baa6c5b336a357e39402c4b9ec8badcbb5c1eb75481f7c20a36e85461f8a3d4
|
||||
SHA256 (0002-py39.patch) = 9196e74a2f53bc29ce7674f949c2345891632a6423284d47f73d86773a8b287d
|
||||
|
101
python3-babel/0001-py39.patch
Normal file
101
python3-babel/0001-py39.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From 167b71421f113e2210e4deefef5020402492e5be Mon Sep 17 00:00:00 2001
|
||||
From: Felix Schwarz <felix.schwarz@oss.schwarz.eu>
|
||||
Date: Tue, 5 May 2020 09:58:01 +0200
|
||||
Subject: [PATCH] stop using deprecated ElementTree methods "getchildren()" and
|
||||
"getiterator()"
|
||||
|
||||
Both methods were removed in Python 3.9 as mentioned in the release notes:
|
||||
|
||||
> Methods getchildren() and getiterator() of classes ElementTree and Element in
|
||||
> the ElementTree module have been removed. They were deprecated in Python 3.2.
|
||||
> Use iter(x) or list(x) instead of x.getchildren() and x.iter() or
|
||||
> list(x.iter()) instead of x.getiterator().
|
||||
---
|
||||
scripts/import_cldr.py | 18 +++++++++---------
|
||||
1 file changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/scripts/import_cldr.py b/scripts/import_cldr.py
|
||||
index 8993b68e..2ed3af91 100755
|
||||
--- a/scripts/import_cldr.py
|
||||
+++ b/scripts/import_cldr.py
|
||||
@@ -598,7 +598,7 @@ def parse_calendar_months(data, calendar):
|
||||
for width in ctxt.findall('monthWidth'):
|
||||
width_type = width.attrib['type']
|
||||
widths = ctxts.setdefault(width_type, {})
|
||||
- for elem in width.getiterator():
|
||||
+ for elem in width.iter():
|
||||
if elem.tag == 'month':
|
||||
_import_type_text(widths, elem, int(elem.attrib['type']))
|
||||
elif elem.tag == 'alias':
|
||||
@@ -616,7 +616,7 @@ def parse_calendar_days(data, calendar):
|
||||
for width in ctxt.findall('dayWidth'):
|
||||
width_type = width.attrib['type']
|
||||
widths = ctxts.setdefault(width_type, {})
|
||||
- for elem in width.getiterator():
|
||||
+ for elem in width.iter():
|
||||
if elem.tag == 'day':
|
||||
_import_type_text(widths, elem, weekdays[elem.attrib['type']])
|
||||
elif elem.tag == 'alias':
|
||||
@@ -634,7 +634,7 @@ def parse_calendar_quarters(data, calendar):
|
||||
for width in ctxt.findall('quarterWidth'):
|
||||
width_type = width.attrib['type']
|
||||
widths = ctxts.setdefault(width_type, {})
|
||||
- for elem in width.getiterator():
|
||||
+ for elem in width.iter():
|
||||
if elem.tag == 'quarter':
|
||||
_import_type_text(widths, elem, int(elem.attrib['type']))
|
||||
elif elem.tag == 'alias':
|
||||
@@ -649,7 +649,7 @@ def parse_calendar_eras(data, calendar):
|
||||
for width in calendar.findall('eras/*'):
|
||||
width_type = NAME_MAP[width.tag]
|
||||
widths = eras.setdefault(width_type, {})
|
||||
- for elem in width.getiterator():
|
||||
+ for elem in width.iter():
|
||||
if elem.tag == 'era':
|
||||
_import_type_text(widths, elem, type=int(elem.attrib.get('type')))
|
||||
elif elem.tag == 'alias':
|
||||
@@ -676,7 +676,7 @@ def parse_calendar_periods(data, calendar):
|
||||
def parse_calendar_date_formats(data, calendar):
|
||||
date_formats = data.setdefault('date_formats', {})
|
||||
for format in calendar.findall('dateFormats'):
|
||||
- for elem in format.getiterator():
|
||||
+ for elem in format.iter():
|
||||
if elem.tag == 'dateFormatLength':
|
||||
type = elem.attrib.get('type')
|
||||
if _should_skip_elem(elem, type, date_formats):
|
||||
@@ -696,7 +696,7 @@ def parse_calendar_date_formats(data, calendar):
|
||||
def parse_calendar_time_formats(data, calendar):
|
||||
time_formats = data.setdefault('time_formats', {})
|
||||
for format in calendar.findall('timeFormats'):
|
||||
- for elem in format.getiterator():
|
||||
+ for elem in format.iter():
|
||||
if elem.tag == 'timeFormatLength':
|
||||
type = elem.attrib.get('type')
|
||||
if _should_skip_elem(elem, type, time_formats):
|
||||
@@ -717,7 +717,7 @@ def parse_calendar_datetime_skeletons(data, calendar):
|
||||
datetime_formats = data.setdefault('datetime_formats', {})
|
||||
datetime_skeletons = data.setdefault('datetime_skeletons', {})
|
||||
for format in calendar.findall('dateTimeFormats'):
|
||||
- for elem in format.getiterator():
|
||||
+ for elem in format.iter():
|
||||
if elem.tag == 'dateTimeFormatLength':
|
||||
type = elem.attrib.get('type')
|
||||
if _should_skip_elem(elem, type, datetime_formats):
|
||||
@@ -880,7 +880,7 @@ def parse_interval_formats(data, tree):
|
||||
interval_formats[None] = elem.text
|
||||
elif elem.tag == "intervalFormatItem":
|
||||
skel_data = interval_formats.setdefault(elem.attrib["id"], {})
|
||||
- for item_sub in elem.getchildren():
|
||||
+ for item_sub in elem:
|
||||
if item_sub.tag == "greatestDifference":
|
||||
skel_data[item_sub.attrib["id"]] = split_interval_pattern(item_sub.text)
|
||||
else:
|
||||
@@ -903,7 +903,7 @@ def parse_currency_formats(data, tree):
|
||||
type = '%s:%s' % (type, curr_length_type)
|
||||
if _should_skip_elem(elem, type, currency_formats):
|
||||
continue
|
||||
- for child in elem.getiterator():
|
||||
+ for child in elem.iter():
|
||||
if child.tag == 'alias':
|
||||
currency_formats[type] = Alias(
|
||||
_translate_alias(['currency_formats', elem.attrib['type']],
|
68
python3-babel/0002-py39.patch
Normal file
68
python3-babel/0002-py39.patch
Normal file
@ -0,0 +1,68 @@
|
||||
From 7bdaa28a55e8d8228d5434effa4b1473ab7b3669 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Schwarz <felix.schwarz@oss.schwarz.eu>
|
||||
Date: Tue, 5 May 2020 08:05:56 +0000
|
||||
Subject: [PATCH] fix tests when using Python 3.9a6
|
||||
|
||||
In Python 3.9a6 integer values for future flags were changed to prevent
|
||||
collision with compiler flags. We need to retrieve these at runtime so
|
||||
the test suite works with Python <= 3.8 as well as Python 3.9.
|
||||
---
|
||||
tests/test_util.py | 17 ++++++++++++-----
|
||||
1 file changed, 12 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/test_util.py b/tests/test_util.py
|
||||
index a6a4450c..b9343aaa 100644
|
||||
--- a/tests/test_util.py
|
||||
+++ b/tests/test_util.py
|
||||
@@ -11,6 +11,7 @@
|
||||
# individuals. For the exact contribution history, see the revision
|
||||
# history and logs, available at http://babel.edgewall.org/log/.
|
||||
|
||||
+import __future__
|
||||
import unittest
|
||||
|
||||
import pytest
|
||||
@@ -20,6 +21,12 @@
|
||||
from babel.util import parse_future_flags
|
||||
|
||||
|
||||
+class _FF:
|
||||
+ division = __future__.division.compiler_flag
|
||||
+ print_function = __future__.print_function.compiler_flag
|
||||
+ with_statement = __future__.with_statement.compiler_flag
|
||||
+ unicode_literals = __future__.unicode_literals.compiler_flag
|
||||
+
|
||||
def test_distinct():
|
||||
assert list(util.distinct([1, 2, 1, 3, 4, 4])) == [1, 2, 3, 4]
|
||||
assert list(util.distinct('foobar')) == ['f', 'o', 'b', 'a', 'r']
|
||||
@@ -70,25 +77,25 @@ def test_parse_encoding_non_ascii():
|
||||
from __future__ import print_function,
|
||||
division, with_statement,
|
||||
unicode_literals
|
||||
-''', 0x10000 | 0x2000 | 0x8000 | 0x20000),
|
||||
+''', _FF.print_function | _FF.division | _FF.with_statement | _FF.unicode_literals),
|
||||
('''
|
||||
from __future__ import print_function, division
|
||||
print('hello')
|
||||
-''', 0x10000 | 0x2000),
|
||||
+''', _FF.print_function | _FF.division),
|
||||
('''
|
||||
from __future__ import print_function, division, unknown,,,,,
|
||||
print 'hello'
|
||||
-''', 0x10000 | 0x2000),
|
||||
+''', _FF.print_function | _FF.division),
|
||||
('''
|
||||
from __future__ import (
|
||||
print_function,
|
||||
division)
|
||||
-''', 0x10000 | 0x2000),
|
||||
+''', _FF.print_function | _FF.division),
|
||||
('''
|
||||
from __future__ import \\
|
||||
print_function, \\
|
||||
division
|
||||
-''', 0x10000 | 0x2000),
|
||||
+''', _FF.print_function | _FF.division),
|
||||
])
|
||||
def test_parse_future(source, result):
|
||||
fp = BytesIO(source.encode('latin-1'))
|
@ -9,7 +9,8 @@ release=1
|
||||
cldrver=36.0 # $SRC/babel-$version/scripts/download_import_cldr.py
|
||||
|
||||
source=(https://github.com/python-babel/babel/archive/v$version/$name-$version.tar.gz
|
||||
https://unicode.org/Public/cldr/${cldrver::2}/cldr-common-$cldrver.zip)
|
||||
https://unicode.org/Public/cldr/${cldrver::2}/cldr-common-$cldrver.zip
|
||||
0001-py39.patch 0002-py39.patch)
|
||||
|
||||
unpack_source() {
|
||||
for file in ${source[@]}; do
|
||||
@ -27,6 +28,8 @@ unpack_source() {
|
||||
build() {
|
||||
cd babel-$version
|
||||
|
||||
patch -Np1 -i $SRC/0001-py39.patch
|
||||
patch -Np1 -i $SRC/0002-py39.patch
|
||||
python3 setup.py import_cldr
|
||||
python3 setup.py build
|
||||
python3 setup.py install --root=$PKG \
|
||||
|
80
python3-babel/import.patch
Normal file
80
python3-babel/import.patch
Normal file
@ -0,0 +1,80 @@
|
||||
From 2a826bb1ad9996a1c1e2d3e86a493d01d7f12c09 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Schwarz <felix.schwarz@oss.schwarz.eu>
|
||||
Date: Tue, 5 May 2020 21:32:52 +0000
|
||||
Subject: [PATCH] simplify iteration code in "import_cldr.py"
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
As Miro Hrončok pointed out we don't need ".iter()" in the script.
|
||||
---
|
||||
scripts/import_cldr.py | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/scripts/import_cldr.py b/scripts/import_cldr.py
|
||||
index 2ed3af91..7ea6481a 100755
|
||||
--- a/scripts/import_cldr.py
|
||||
+++ b/scripts/import_cldr.py
|
||||
@@ -598,7 +598,7 @@ def parse_calendar_months(data, calendar):
|
||||
for width in ctxt.findall('monthWidth'):
|
||||
width_type = width.attrib['type']
|
||||
widths = ctxts.setdefault(width_type, {})
|
||||
- for elem in width.iter():
|
||||
+ for elem in width:
|
||||
if elem.tag == 'month':
|
||||
_import_type_text(widths, elem, int(elem.attrib['type']))
|
||||
elif elem.tag == 'alias':
|
||||
@@ -616,7 +616,7 @@ def parse_calendar_days(data, calendar):
|
||||
for width in ctxt.findall('dayWidth'):
|
||||
width_type = width.attrib['type']
|
||||
widths = ctxts.setdefault(width_type, {})
|
||||
- for elem in width.iter():
|
||||
+ for elem in width:
|
||||
if elem.tag == 'day':
|
||||
_import_type_text(widths, elem, weekdays[elem.attrib['type']])
|
||||
elif elem.tag == 'alias':
|
||||
@@ -634,7 +634,7 @@ def parse_calendar_quarters(data, calendar):
|
||||
for width in ctxt.findall('quarterWidth'):
|
||||
width_type = width.attrib['type']
|
||||
widths = ctxts.setdefault(width_type, {})
|
||||
- for elem in width.iter():
|
||||
+ for elem in width:
|
||||
if elem.tag == 'quarter':
|
||||
_import_type_text(widths, elem, int(elem.attrib['type']))
|
||||
elif elem.tag == 'alias':
|
||||
@@ -649,7 +649,7 @@ def parse_calendar_eras(data, calendar):
|
||||
for width in calendar.findall('eras/*'):
|
||||
width_type = NAME_MAP[width.tag]
|
||||
widths = eras.setdefault(width_type, {})
|
||||
- for elem in width.iter():
|
||||
+ for elem in width:
|
||||
if elem.tag == 'era':
|
||||
_import_type_text(widths, elem, type=int(elem.attrib.get('type')))
|
||||
elif elem.tag == 'alias':
|
||||
@@ -676,7 +676,7 @@ def parse_calendar_periods(data, calendar):
|
||||
def parse_calendar_date_formats(data, calendar):
|
||||
date_formats = data.setdefault('date_formats', {})
|
||||
for format in calendar.findall('dateFormats'):
|
||||
- for elem in format.iter():
|
||||
+ for elem in format:
|
||||
if elem.tag == 'dateFormatLength':
|
||||
type = elem.attrib.get('type')
|
||||
if _should_skip_elem(elem, type, date_formats):
|
||||
@@ -696,7 +696,7 @@ def parse_calendar_date_formats(data, calendar):
|
||||
def parse_calendar_time_formats(data, calendar):
|
||||
time_formats = data.setdefault('time_formats', {})
|
||||
for format in calendar.findall('timeFormats'):
|
||||
- for elem in format.iter():
|
||||
+ for elem in format:
|
||||
if elem.tag == 'timeFormatLength':
|
||||
type = elem.attrib.get('type')
|
||||
if _should_skip_elem(elem, type, time_formats):
|
||||
@@ -717,7 +717,7 @@ def parse_calendar_datetime_skeletons(data, calendar):
|
||||
datetime_formats = data.setdefault('datetime_formats', {})
|
||||
datetime_skeletons = data.setdefault('datetime_skeletons', {})
|
||||
for format in calendar.findall('dateTimeFormats'):
|
||||
- for elem in format.iter():
|
||||
+ for elem in format:
|
||||
if elem.tag == 'dateTimeFormatLength':
|
||||
type = elem.attrib.get('type')
|
||||
if _should_skip_elem(elem, type, datetime_formats):
|
Loading…
x
Reference in New Issue
Block a user