Merge lp:~barcc/ubuntu/saucy/pyicu/lp1200419 into lp:ubuntu/saucy/pyicu

Proposed by B. Clausius
Status: Merged
Merge reported by: Martin Pitt
Merged at revision: not available
Proposed branch: lp:~barcc/ubuntu/saucy/pyicu/lp1200419
Merge into: lp:ubuntu/saucy/pyicu
Diff against target: 811 lines (+313/-113)
30 files modified
.pc/.quilt_patches (+1/-0)
.pc/.quilt_series (+1/-0)
.pc/.version (+1/-0)
CHANGES (+12/-0)
PKG-INFO (+13/-2)
PyICU.egg-info/PKG-INFO (+13/-2)
bases.cpp (+8/-0)
calendar.cpp (+8/-1)
common.h (+3/-0)
dateformat.cpp (+7/-0)
debian/changelog (+37/-0)
debian/control (+26/-7)
debian/patches/00dpatch.conf (+0/-2)
debian/patches/00list (+0/-2)
debian/patches/fix_typo_in_deprecation_warning.patch (+13/-0)
debian/patches/no-setuptools-please.diff (+22/-0)
debian/patches/no-setuptools-please.dpatch (+0/-21)
debian/patches/platform-definitions-fix.diff (+20/-0)
debian/patches/platform-definitions-fix.dpatch (+0/-18)
debian/patches/rename_docs_module.patch (+10/-0)
debian/patches/series (+4/-0)
debian/rules (+27/-31)
debian/source/format (+1/-1)
format.cpp (+21/-3)
layoutengine.cpp (+11/-1)
numberformat.cpp (+1/-1)
setup.py (+13/-1)
test/test_Collator.py (+22/-19)
test/test_MessageFormat.py (+17/-0)
transliterator.cpp (+1/-1)
To merge this branch: bzr merge lp:~barcc/ubuntu/saucy/pyicu/lp1200419
Reviewer Review Type Date Requested Status
Martin Pitt Approve
Review via email: mp+176028@code.launchpad.net

Description of the change

* Merged from debian version 1.5-2
* Added transitional packages python3-pyicu[-dbg] to migrate to python3-icu[-dbg]

This solves: lp: #1200419, Please provide package python3-icu

To post a comment you must log in.
Revision history for this message
Martin Pitt (pitti) wrote :

Thanks! Uploaded.

review: Approve
Revision history for this message
Iain Lane (laney) wrote :

BTW this merge missed Breaks/Replaces from the new package to the old transitional one and so causes upgrade failures. I'm uploading a fix for that now.

  http://wiki.debian.org/Renaming_a_Package

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory '.pc'
2=== added file '.pc/.quilt_patches'
3--- .pc/.quilt_patches 1970-01-01 00:00:00 +0000
4+++ .pc/.quilt_patches 2013-07-20 21:08:24 +0000
5@@ -0,0 +1,1 @@
6+debian/patches
7
8=== added file '.pc/.quilt_series'
9--- .pc/.quilt_series 1970-01-01 00:00:00 +0000
10+++ .pc/.quilt_series 2013-07-20 21:08:24 +0000
11@@ -0,0 +1,1 @@
12+series
13
14=== added file '.pc/.version'
15--- .pc/.version 1970-01-01 00:00:00 +0000
16+++ .pc/.version 2013-07-20 21:08:24 +0000
17@@ -0,0 +1,1 @@
18+2
19
20=== modified file 'CHANGES'
21--- CHANGES 2012-05-10 22:59:17 +0000
22+++ CHANGES 2013-07-20 21:08:24 +0000
23@@ -1,6 +1,18 @@
24
25 For bug <NUM>, see http://bugzilla.osafoundation.org/show_bug.cgi?id=<NUM>
26
27+Version 1.4 -> 1.5
28+------------------
29+ - added wrapper for MessageFormat::format(argumentNames, arguments, ...)
30+ - fixed bug in t_transliterator_filteredTransliterate passing UBool for int
31+ - added wrapper for DateFormat::format(Calendar)
32+ - added wrapper for Calendar::set(UCalendarDateFields field, value)
33+ - added wrappers for UnicodeString::toTitle() w/o iterator (Fredrik Roubert)
34+ - added support for ICU 50.1
35+ - improved test_Collator's testGetSortKey() (Markus Scherer)
36+ - added pypi classifiers to PyICU project info, including Python 3 tag
37+ - build tested with Python 2.7 and Python 3.3.0
38+
39 Version 1.3 -> 1.4
40 ------------------
41 - fixed bug with default tzinfo set on ICUtzinfo type (bug 13038)
42
43=== modified file 'PKG-INFO'
44--- PKG-INFO 2012-05-10 22:59:17 +0000
45+++ PKG-INFO 2013-07-20 21:08:24 +0000
46@@ -1,10 +1,10 @@
47 Metadata-Version: 1.0
48 Name: PyICU
49-Version: 1.4
50+Version: 1.5
51 Summary: Python extension wrapping the ICU C++ API
52 Home-page: http://pyicu.osafoundation.org/
53 Author: Open Source Applications Foundation
54-Author-email: UNKNOWN
55+Author-email: vajda@osafoundation.org
56 License: UNKNOWN
57 Description:
58 ---------------------
59@@ -238,3 +238,14 @@
60 str(ICUtzinfo.getInstance('Pacific/Fiji')) -> 'Pacific/Fiji'
61
62 Platform: UNKNOWN
63+Classifier: Development Status :: 5 - Production/Stable
64+Classifier: Environment :: Console
65+Classifier: Intended Audience :: Developers
66+Classifier: License :: OSI Approved
67+Classifier: Operating System :: OS Independent
68+Classifier: Programming Language :: C++
69+Classifier: Programming Language :: Python
70+Classifier: Programming Language :: Python :: 2
71+Classifier: Programming Language :: Python :: 3
72+Classifier: Topic :: Software Development :: Localization
73+Classifier: Topic :: Software Development :: Internationalization
74
75=== modified file 'PyICU.egg-info/PKG-INFO'
76--- PyICU.egg-info/PKG-INFO 2012-05-10 22:59:17 +0000
77+++ PyICU.egg-info/PKG-INFO 2013-07-20 21:08:24 +0000
78@@ -1,10 +1,10 @@
79 Metadata-Version: 1.0
80 Name: PyICU
81-Version: 1.4
82+Version: 1.5
83 Summary: Python extension wrapping the ICU C++ API
84 Home-page: http://pyicu.osafoundation.org/
85 Author: Open Source Applications Foundation
86-Author-email: UNKNOWN
87+Author-email: vajda@osafoundation.org
88 License: UNKNOWN
89 Description:
90 ---------------------
91@@ -238,3 +238,14 @@
92 str(ICUtzinfo.getInstance('Pacific/Fiji')) -> 'Pacific/Fiji'
93
94 Platform: UNKNOWN
95+Classifier: Development Status :: 5 - Production/Stable
96+Classifier: Environment :: Console
97+Classifier: Intended Audience :: Developers
98+Classifier: License :: OSI Approved
99+Classifier: Operating System :: OS Independent
100+Classifier: Programming Language :: C++
101+Classifier: Programming Language :: Python
102+Classifier: Programming Language :: Python :: 2
103+Classifier: Programming Language :: Python :: 3
104+Classifier: Topic :: Software Development :: Localization
105+Classifier: Topic :: Software Development :: Internationalization
106
107=== modified file 'bases.cpp'
108--- bases.cpp 2012-05-10 22:59:17 +0000
109+++ bases.cpp 2013-07-20 21:08:24 +0000
110@@ -1275,7 +1275,15 @@
111 Locale *locale;
112
113 switch (PyTuple_Size(args)) {
114+ case 0:
115+ self->object->toTitle(NULL);
116+ Py_RETURN_SELF();
117 case 1:
118+ if (!parseArgs(args, "P", TYPE_CLASSID(Locale), &locale))
119+ {
120+ self->object->toTitle(NULL, *locale);
121+ Py_RETURN_SELF();
122+ }
123 if (!parseArg(args, "P", TYPE_ID(BreakIterator), &iterator))
124 {
125 self->object->toTitle(iterator);
126
127=== modified file 'calendar.cpp'
128--- calendar.cpp 2011-11-13 12:07:46 +0000
129+++ calendar.cpp 2013-07-20 21:08:24 +0000
130@@ -1136,8 +1136,15 @@
131 static PyObject *t_calendar_set(t_calendar *self, PyObject *args)
132 {
133 int year, month, date, hour, minute, second;
134-
135+ int field, value;
136 switch (PyTuple_Size(args)) {
137+ case 2:
138+ if (!parseArgs(args, "ii", &field, &value))
139+ {
140+ self->object->set((UCalendarDateFields) field, value);
141+ Py_RETURN_NONE;
142+ }
143+ break;
144 case 3:
145 if (!parseArgs(args, "iii", &year, &month, &date))
146 {
147
148=== modified file 'common.h'
149--- common.h 2011-11-13 12:07:46 +0000
150+++ common.h 2013-07-20 21:08:24 +0000
151@@ -131,6 +131,9 @@
152 #include <unicode/search.h>
153 #include <unicode/stsearch.h>
154
155+#define VERSION_HEX(major, minor, patch) \
156+ (((major) << 24) | ((minor) << 16) | ((patch) << 8))
157+
158 #define U_ICU_VERSION_HEX ((U_ICU_VERSION_MAJOR_NUM << 24) + \
159 (U_ICU_VERSION_MINOR_NUM << 16) + \
160 (U_ICU_VERSION_PATCHLEVEL_NUM << 8))
161
162=== modified file 'dateformat.cpp'
163--- dateformat.cpp 2011-11-13 12:07:46 +0000
164+++ dateformat.cpp 2013-07-20 21:08:24 +0000
165@@ -609,6 +609,13 @@
166 self->object->format(date, _u);
167 return PyUnicode_FromUnicodeString(&_u);
168 }
169+ if (!parseArgs(args, "P", TYPE_ID(Calendar), &calendar))
170+ {
171+ FieldPosition fp0(0);
172+
173+ self->object->format(*calendar, _u, fp0);
174+ return PyUnicode_FromUnicodeString(&_u);
175+ }
176 break;
177 case 2:
178 if (!parseArgs(args, "DP", TYPE_CLASSID(FieldPosition),
179
180=== modified file 'debian/changelog'
181--- debian/changelog 2012-11-07 23:00:26 +0000
182+++ debian/changelog 2013-07-20 21:08:24 +0000
183@@ -1,3 +1,40 @@
184+pyicu (1.5-2ubuntu1) saucy; urgency=low
185+
186+ * Resynchronise with Debian.
187+ * Added transitional packages python3-pyicu[-dbg] to migrate
188+ to python3-icu[-dbg]
189+
190+ -- B. Clausius <barcc@gmx.de> Sat, 20 Jul 2013 21:40:05 +0200
191+
192+pyicu (1.5-2) unstable; urgency=low
193+
194+ * Rename docs.py to icu_docs.py instead of removing it
195+ as it's used in icu (closes: #714048)
196+
197+ -- Piotr Ożarowski <piotr@debian.org> Tue, 25 Jun 2013 19:22:34 +0200
198+
199+pyicu (1.5-1) unstable; urgency=low
200+
201+ * Team upload.
202+
203+ [ Jakub Wilk ]
204+ * Use canonical URIs for Vcs-* fields.
205+
206+ [ Colin Watson ]
207+ * Add Python 3 packages (closes: #671361).
208+ * Drop manual cleaning of python-pyicu-dbg, since dh_python2 handles this.
209+
210+ [ Piotr Ożarowski ]
211+ * New upstream release
212+ * Convert patches from deprecated dpatch to quilt
213+ * Debian source package format changed to 3.0 (quilt)
214+ * Add fix_typo_in_deprecation_warning patch (closes: #589031)
215+ * Remove docs.py file from binary packages (closes: #603717)
216+ * Standards-Version bumped to 3.9.4:
217+ - build-arch and build-indep targets added in debian/rules
218+
219+ -- Piotr Ożarowski <piotr@debian.org> Mon, 24 Jun 2013 22:20:56 +0200
220+
221 pyicu (1.4-1ubuntu3) raring; urgency=low
222
223 * Rebuild to drop python3.2 provides.
224
225=== modified file 'debian/control'
226--- debian/control 2012-05-15 15:38:16 +0000
227+++ debian/control 2013-07-20 21:08:24 +0000
228@@ -4,12 +4,14 @@
229 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
230 XSBC-Original-Maintainer: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>
231 Uploaders: Bernd Zeimetz <bzed@debian.org>
232-Build-Depends: dpatch, debhelper (>= 5.0.37.3), python-all-dev (>= 2.6.6-3~), python-all-dbg (>= 2.6.6-3~), python3-all-dev, python3-all-dbg, libicu-dev
233+Build-Depends: debhelper (>= 5.0.37.3), python-all-dev (>= 2.6.6-3~), python-all-dbg (>= 2.6.6-3~), python3-all-dev, python3-all-dbg, libicu-dev,
234+# uncoment below line to run test_LayoutEngine at build time (once all Python versions will be supported by these packages)
235+# fonttools, python-numpy-dbg, python3-numpy-dbg
236 Build-Conflicts: python-pyicu
237-Vcs-Svn: svn://svn.debian.org/python-modules/packages/pyicu/trunk/
238-Vcs-Browser: http://svn.debian.org/viewsvn/python-modules/packages/pyicu/trunk/
239+Vcs-Svn: svn://anonscm.debian.org/python-modules/packages/pyicu/trunk/
240+Vcs-Browser: http://anonscm.debian.org/viewvc/python-modules/packages/pyicu/trunk/
241 Homepage: http://pyicu.osafoundation.org/
242-Standards-Version: 3.9.2
243+Standards-Version: 3.9.4
244
245 Package: python-pyicu
246 Architecture: any
247@@ -33,7 +35,7 @@
248 .
249 This package contains the extension built for the Python debug interpreter.
250
251-Package: python3-pyicu
252+Package: python3-icu
253 Architecture: any
254 Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}
255 Provides: ${python3:Provides}
256@@ -42,11 +44,11 @@
257 Unicode and locale support. This package provides an extension for
258 Python 3 which wraps the ICU C++ API.
259
260-Package: python3-pyicu-dbg
261+Package: python3-icu-dbg
262 Section: debug
263 Architecture: any
264 Priority: extra
265-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, python3-pyicu (= ${binary:Version}), python3-dbg
266+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, python3-icu (= ${binary:Version}), python3-dbg
267 Provides: ${python3:Provides}
268 Description: Python 3 extension wrapping the ICU C++ API (debug extension)
269 ICU is a C++ and C library that provides robust and full-featured
270@@ -55,3 +57,20 @@
271 .
272 This package contains the extension built for the Python 3 debug
273 interpreter.
274+
275+Package: python3-pyicu
276+Section: oldlibs
277+Architecture: any
278+Depends: python3-icu (= ${binary:Version})
279+Description: dummy transitional package for PyICU Python 3 extension
280+ This is a transitional package to migrate to python3-icu.
281+ Once no package depends on it, you may safely remove it.
282+
283+Package: python3-pyicu-dbg
284+Section: oldlibs
285+Architecture: any
286+Priority: extra
287+Depends: python3-icu-dbg (= ${binary:Version})
288+Description: dummy transitional package for PyICU Python 3 debug extension
289+ This is a transitional package to migrate to python3-icu-dbg.
290+ Once no package depends on it, you may safely remove it.
291
292=== removed file 'debian/patches/00dpatch.conf'
293--- debian/patches/00dpatch.conf 2007-12-06 22:45:38 +0000
294+++ debian/patches/00dpatch.conf 1970-01-01 00:00:00 +0000
295@@ -1,2 +0,0 @@
296-conf_debianonly=1
297-conf_origtargzpath=../tarballs
298
299=== removed file 'debian/patches/00list'
300--- debian/patches/00list 2012-06-21 11:32:38 +0000
301+++ debian/patches/00list 1970-01-01 00:00:00 +0000
302@@ -1,2 +0,0 @@
303-no-setuptools-please
304-platform-definitions-fix
305
306=== added file 'debian/patches/fix_typo_in_deprecation_warning.patch'
307--- debian/patches/fix_typo_in_deprecation_warning.patch 1970-01-01 00:00:00 +0000
308+++ debian/patches/fix_typo_in_deprecation_warning.patch 2013-07-20 21:08:24 +0000
309@@ -0,0 +1,13 @@
310+Index: PyICU-1.5/PyICU.py
311+===================================================================
312+--- PyICU-1.5.orig/PyICU.py
313++++ PyICU-1.5/PyICU.py
314+@@ -23,7 +23,7 @@
315+
316+ import warnings as _warnings
317+
318+-_warnings.warn("Module 'PyICU' is deprecated, import 'icu' instead'",
319++_warnings.warn("Module 'PyICU' is deprecated, import 'icu' instead",
320+ category=DeprecationWarning, stacklevel=2)
321+
322+ from icu import *
323
324=== added file 'debian/patches/no-setuptools-please.diff'
325--- debian/patches/no-setuptools-please.diff 1970-01-01 00:00:00 +0000
326+++ debian/patches/no-setuptools-please.diff 2013-07-20 21:08:24 +0000
327@@ -0,0 +1,22 @@
328+#! /bin/sh /usr/share/dpatch/dpatch-run
329+## no-setuptools-please.dpatch by Bernd Zeimetz <bzed@debian.org>
330+##
331+## DP: As usual - do not build with setuptools.
332+
333+@DPATCH@
334+Index: PyICU-1.5/setup.py
335+===================================================================
336+--- PyICU-1.5.orig/setup.py
337++++ PyICU-1.5/setup.py
338+@@ -1,10 +1,7 @@
339+
340+ import os, sys
341+
342+-try:
343+- from setuptools import setup, Extension
344+-except ImportError:
345+- from distutils.core import setup, Extension
346++from distutils.core import setup, Extension
347+
348+
349+ VERSION = '1.5'
350
351=== removed file 'debian/patches/no-setuptools-please.dpatch'
352--- debian/patches/no-setuptools-please.dpatch 2007-12-06 22:45:38 +0000
353+++ debian/patches/no-setuptools-please.dpatch 1970-01-01 00:00:00 +0000
354@@ -1,21 +0,0 @@
355-#! /bin/sh /usr/share/dpatch/dpatch-run
356-## no-setuptools-please.dpatch by Bernd Zeimetz <bzed@debian.org>
357-##
358-## DP: As usual - do not build with setuptools.
359-
360-@DPATCH@
361-diff -urNad pyicu~/setup.py pyicu/setup.py
362---- pyicu~/setup.py 2007-11-28 19:37:57.000000000 +0100
363-+++ pyicu/setup.py 2007-12-05 14:21:57.000000000 +0100
364-@@ -1,10 +1,7 @@
365-
366- import os, sys
367-
368--try:
369-- from setuptools import setup, Extension
370--except ImportError:
371-- from distutils.core import setup, Extension
372-+from distutils.core import setup, Extension
373-
374-
375- VERSION = '0.8'
376
377=== added file 'debian/patches/platform-definitions-fix.diff'
378--- debian/patches/platform-definitions-fix.diff 1970-01-01 00:00:00 +0000
379+++ debian/patches/platform-definitions-fix.diff 2013-07-20 21:08:24 +0000
380@@ -0,0 +1,20 @@
381+#! /bin/sh /usr/share/dpatch/dpatch-run
382+## platform-definitions-fix.dpatch by Jakub Wilk <jwilk@debian.org>
383+##
384+## DP: Fixing FTBFS due to new platform definitions. Setup.py doesn't need to
385+## DP: take care of them in our case.
386+
387+@DPATCH@
388+Index: PyICU-1.5/setup.py
389+===================================================================
390+--- PyICU-1.5.orig/setup.py
391++++ PyICU-1.5/setup.py
392+@@ -48,7 +48,7 @@ LIBRARIES = {
393+ }
394+
395+ platform = sys.platform
396+-if platform.startswith('linux'):
397++if platform.startswith('linux') or platform.startswith('gnu'):
398+ platform = 'linux'
399+
400+ if 'PYICU_INCLUDES' in os.environ:
401
402=== removed file 'debian/patches/platform-definitions-fix.dpatch'
403--- debian/patches/platform-definitions-fix.dpatch 2012-05-10 22:59:17 +0000
404+++ debian/patches/platform-definitions-fix.dpatch 1970-01-01 00:00:00 +0000
405@@ -1,18 +0,0 @@
406-#! /bin/sh /usr/share/dpatch/dpatch-run
407-## platform-definitions-fix.dpatch by Jakub Wilk <jwilk@debian.org>
408-##
409-## DP: Fixing FTBFS due to new platform definitions. Setup.py doesn't need to
410-## DP: take care of them in our case.
411-
412-@DPATCH@
413---- pyicu-0.8.1/setup.py
414-+++ pyicu-0.8.1+kbsd/setup.py
415-@@ -42,7 +42,7 @@
416- }
417-
418- platform = sys.platform
419--if platform.startswith('linux'):
420-+if platform.startswith('linux') or platform.startswith('gnu'):
421- platform = 'linux'
422-
423- if 'PYICU_INCLUDES' in os.environ:
424
425=== added file 'debian/patches/rename_docs_module.patch'
426--- debian/patches/rename_docs_module.patch 1970-01-01 00:00:00 +0000
427+++ debian/patches/rename_docs_module.patch 2013-07-20 21:08:24 +0000
428@@ -0,0 +1,10 @@
429+Index: PyICU-1.5/icu.py
430+===================================================================
431+--- PyICU-1.5.orig/icu.py
432++++ PyICU-1.5/icu.py
433+@@ -34,4 +34,4 @@ class ICUError(Exception):
434+ class InvalidArgsError(Exception):
435+ pass
436+
437+-from docs import *
438++from icu_docs import *
439
440=== added file 'debian/patches/series'
441--- debian/patches/series 1970-01-01 00:00:00 +0000
442+++ debian/patches/series 2013-07-20 21:08:24 +0000
443@@ -0,0 +1,4 @@
444+no-setuptools-please.diff
445+platform-definitions-fix.diff
446+fix_typo_in_deprecation_warning.patch
447+rename_docs_module.patch
448
449=== modified file 'debian/rules'
450--- debian/rules 2012-05-15 15:38:16 +0000
451+++ debian/rules 2013-07-20 21:08:24 +0000
452@@ -4,44 +4,42 @@
453 #export DH_VERBOSE=1
454
455 PKGNAME:=python-pyicu
456-PKG3NAME=python3-pyicu
457+PKG3NAME=python3-icu
458 PYVERS:=$(shell pyversions -vr)
459 PY3VERS:=$(shell py3versions -vr)
460
461 -include /usr/share/python/python.mk
462-ifeq (,$(py_sitename))
463- py_sitename = site-packages
464- py_libdir = /usr/lib/python$(subst python,,$(1))/site-packages
465- py_sitename_sh = $(py_sitename)
466- py_libdir_sh = $(py_libdir)
467-endif
468-
469-
470-include /usr/share/dpatch/dpatch.make
471-
472-build: patch build-stamp
473+
474+
475+build: build-arch
476+build-indep:
477+# We have nothing to do by default.
478+build-arch: build-stamp
479 build-stamp:
480 dh_testdir
481-
482+
483 # setup.py modifies test source files when building for Python 3, so
484 # build out of tree.
485- rm -rf build-py2 build-py3
486- mkdir -p build-py2 build-py3
487- cp -a $(filter-out build-py2 build-py3 debian,$(wildcard *)) build-py2/
488- cp -a $(filter-out build-py2 build-py3 debian,$(wildcard *)) build-py3/
489-
490+ rm -rf build/py2 build/py3
491+ mkdir -p build/py2 build/py3
492+ cp -a $(filter-out build/py2 build/py3 debian,$(wildcard *)) build/py2/
493+ cp -a $(filter-out build/py2 build/py3 debian,$(wildcard *)) build/py3/
494+
495 set -e; \
496 for py in $(PYVERS) $(PY3VERS); do \
497- (cd build-py$${py%%.*}; \
498+ (cd build/py$${py%%.*}; \
499 python$$py setup.py build; \
500 python$$py-dbg setup.py build); \
501 done
502+ set -e; \
503+ for file in `find $(CURDIR)/build -type f -name docs.py`; do \
504+ mv "$$file" "`dirname $$file`/icu_docs.py"; done
505
506 ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
507 set -ex ;\
508 for test in `ls test/*.py`; do \
509 for py in $(PYVERS) $(PY3VERS); do \
510- (cd build-py$${py%%.*}; \
511+ (cd build/py$${py%%.*}; \
512 PYTHONPATH=`ls -d $$(pwd)/build/lib.*-$$py` \
513 python$$py $$test ;\
514 PYTHONPATH=`ls -d $$(pwd)/build/lib_d.*-$$py || ls -d $$(pwd)/build/lib.*-$$py-pydebug` \
515@@ -52,14 +50,13 @@
516
517 touch $@
518
519-clean: clean-patched unpatch
520-clean-patched: patch-stamp
521+clean:
522 dh_testdir
523 dh_testroot
524 rm -f install-stamp build-stamp
525 find . -name "*.pyc" -print0 | xargs -0 rm -f
526 find . -name __pycache__ -print0 | xargs -0 rm -rf
527- rm -rf build-py2 build-py3
528+ rm -rf build
529 dh_clean
530
531 install: install-stamp
532@@ -70,24 +67,25 @@
533 dh_installdirs
534 set -e; \
535 for py in $(PYVERS); do \
536- (cd build-py2; \
537+ (cd build/py2; \
538 python$$py setup.py install --root=$(CURDIR)/debian/$(PKGNAME) --prefix=/usr $(py_setup_install_args) ;\
539 python$$py-dbg setup.py install --root=$(CURDIR)/debian/$(PKGNAME)-dbg --prefix=/usr $(py_setup_install_args)) ;\
540 done
541+ set -e; \
542 for py in $(PY3VERS); do \
543- (cd build-py3; \
544+ (cd build/py3; \
545 python$$py setup.py install --root=$(CURDIR)/debian/$(PKG3NAME) --prefix=/usr $(py_setup_install_args) ;\
546 python$$py-dbg setup.py install --root=$(CURDIR)/debian/$(PKG3NAME)-dbg --prefix=/usr $(py_setup_install_args)) ;\
547 done
548-
549+
550 dh_installdocs
551 dh_installexamples
552 touch install-stamp
553
554-binary-indep: build install
555+binary-indep: build-indep install
556 # We have nothing to do by default.
557
558-binary-arch: build install
559+binary-arch: build-arch install
560 dh_testdir
561 dh_testroot
562 dh_installchangelogs CHANGES
563@@ -108,6 +106,4 @@
564 dh_builddeb
565
566 binary: binary-indep binary-arch
567-.PHONY: build clean binary-indep binary-arch binary install \
568- clean-patched patch unpatch
569-
570+.PHONY: build clean binary-indep binary-arch binary install
571
572=== modified file 'debian/source/format'
573--- debian/source/format 2010-06-22 20:59:32 +0000
574+++ debian/source/format 2013-07-20 21:08:24 +0000
575@@ -1,1 +1,1 @@
576-1.0
577+3.0 (quilt)
578
579=== modified file 'format.cpp'
580--- format.cpp 2011-11-13 12:07:46 +0000
581+++ format.cpp 2013-07-20 21:08:24 +0000
582@@ -971,7 +971,7 @@
583 Formattable *f;
584 UnicodeString *u, _u;
585 FieldPosition *fp, _fp;
586- int len;
587+ int len, u_len;
588
589 switch (PyTuple_Size(args)) {
590 case 1:
591@@ -988,6 +988,7 @@
592 return PyUnicode_FromUnicodeString(&_u);
593 }
594 break;
595+
596 case 2:
597 if (!parseArgs(args, "RP",
598 TYPE_CLASSID(Formattable),
599@@ -1003,7 +1004,6 @@
600
601 return PyUnicode_FromUnicodeString(&_u);
602 }
603- break;
604 if (!parseArgs(args, "RU", TYPE_CLASSID(Formattable),
605 &f, &len, TYPE_CLASSID(Formattable),
606 toFormattableArray, &u))
607@@ -1016,9 +1016,27 @@
608
609 Py_RETURN_ARG(args, 1);
610 }
611+#if U_ICU_VERSION_HEX >= VERSION_HEX(4, 0, 0)
612+ if (!parseArgs(args, "TR",
613+ TYPE_CLASSID(Formattable),
614+ &u, &u_len,
615+ &f, &len, TYPE_CLASSID(Formattable), toFormattableArray))
616+ {
617+ STATUS_CALL(
618+ {
619+ self->object->format(u, f, len < u_len ? len : u_len,
620+ _u, status);
621+ delete[] u;
622+ delete[] f;
623+ });
624+
625+ return PyUnicode_FromUnicodeString(&_u);
626+ }
627+#endif
628 break;
629+
630 case 3:
631- if (!parseArgs(args, "RUP",
632+ if (!parseArgs(args, "RUP",
633 TYPE_CLASSID(Formattable),
634 TYPE_CLASSID(FieldPosition),
635 &f, &len, TYPE_CLASSID(Formattable),
636
637=== modified file 'layoutengine.cpp'
638--- layoutengine.cpp 2012-05-10 22:59:17 +0000
639+++ layoutengine.cpp 2013-07-20 21:08:24 +0000
640@@ -218,6 +218,16 @@
641 return 0;
642 }
643
644+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 u,
645+ const LECharMapper *mapper) const {
646+ return LEFontInstance::mapCharToGlyph(u, mapper);
647+ }
648+
649+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 u, const LECharMapper *mapper,
650+ le_bool filterZeroWidth) const {
651+ return LEFontInstance::mapCharToGlyph(u, mapper, filterZeroWidth);
652+ }
653+
654 virtual void getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const
655 {
656 PyObject *name = PyString_FromString("getGlyphAdvance");
657@@ -706,7 +716,7 @@
658 INSTALL_ENUM(ScriptCode, "sind", sindScriptCode);
659 INSTALL_ENUM(ScriptCode, "wara", waraScriptCode);
660
661-#if U_ICU_VERSION_HEX >= 0x31000000
662+#if U_ICU_VERSION_HEX >= VERSION_HEX(49, 0, 0)
663 INSTALL_ENUM(ScriptCode, "afak", afakScriptCode);
664 INSTALL_ENUM(ScriptCode, "jurc", jurcScriptCode);
665 INSTALL_ENUM(ScriptCode, "khoj", khojScriptCode);
666
667=== modified file 'numberformat.cpp'
668--- numberformat.cpp 2012-05-10 22:59:17 +0000
669+++ numberformat.cpp 2013-07-20 21:08:24 +0000
670@@ -670,7 +670,7 @@
671 return PyErr_SetArgsError((PyObject *) self, "parse", args);
672 }
673
674-#if U_ICU_VERSION_HEX < 0x31000000 /* < 49.0 */
675+#if U_ICU_VERSION_HEX < VERSION_HEX(49, 0, 0)
676 static PyObject *t_numberformat_parseCurrency(t_numberformat *self,
677 PyObject *args)
678 {
679
680=== modified file 'setup.py'
681--- setup.py 2012-05-10 22:59:17 +0000
682+++ setup.py 2013-07-20 21:08:24 +0000
683@@ -7,7 +7,7 @@
684 from distutils.core import setup, Extension
685
686
687-VERSION = '1.4'
688+VERSION = '1.5'
689
690 INCLUDES = {
691 'darwin': ['/usr/local/include'],
692@@ -88,6 +88,18 @@
693 test_suite="test",
694 url='http://pyicu.osafoundation.org/',
695 author='Open Source Applications Foundation',
696+ author_email='vajda@osafoundation.org',
697+ classifiers=['Development Status :: 5 - Production/Stable',
698+ 'Environment :: Console',
699+ 'Intended Audience :: Developers',
700+ 'License :: OSI Approved',
701+ 'Operating System :: OS Independent',
702+ 'Programming Language :: C++',
703+ 'Programming Language :: Python',
704+ 'Programming Language :: Python :: 2',
705+ 'Programming Language :: Python :: 3',
706+ 'Topic :: Software Development :: Localization',
707+ 'Topic :: Software Development :: Internationalization'],
708 ext_modules=[Extension('_icu',
709 [filename for filename in os.listdir(os.curdir)
710 if filename.endswith('.cpp')],
711
712=== removed file 'test/._lohit_hi.ttf'
713Binary files test/._lohit_hi.ttf 2011-11-13 12:07:46 +0000 and test/._lohit_hi.ttf 1970-01-01 00:00:00 +0000 differ
714=== modified file 'test/test_Collator.py'
715--- test/test_Collator.py 2012-05-10 22:59:17 +0000
716+++ test/test_Collator.py 2013-07-20 21:08:24 +0000
717@@ -65,31 +65,34 @@
718
719 def testGetSortKey(self):
720
721- rules = UnicodeString("");
722- collator = RuleBasedCollator(rules)
723+ # Do not test sort key byte sequences directly:
724+ # They are unstable, that is, likely to change
725+ # with every UCA/CLDR/ICU release.
726+ # Instead, test that compare() is consistent with
727+ # comparing the equivalent sort keys.
728+ collator = Collator.createInstance(Locale.getJapanese())
729 collator.setAttribute(UCollAttribute.NORMALIZATION_MODE,
730 UCollAttributeValue.ON)
731 collator.setAttribute(UCollAttribute.ALTERNATE_HANDLING,
732 UCollAttributeValue.SHIFTED)
733 collator.setAttribute(UCollAttribute.STRENGTH,
734+ UCollAttributeValue.TERTIARY)
735+
736+ # In Japanese, the following characters should be different
737+ # only on quaternary level.
738+ hira_ge = u'\u3052' # Hiragana letter Ge
739+ kana_ge = u'\u30B2' # Katakana letter Ge
740+ self.assertEqual(0, collator.compare(hira_ge, kana_ge))
741+ hira_ge_key = collator.getSortKey(hira_ge)
742+ kana_ge_key = collator.getSortKey(kana_ge)
743+ self.assertEqual(hira_ge_key, kana_ge_key)
744+
745+ collator.setAttribute(UCollAttribute.STRENGTH,
746 UCollAttributeValue.QUATERNARY)
747- collator.setAttribute(UCollAttribute.HIRAGANA_QUATERNARY_MODE,
748- UCollAttributeValue.ON)
749- s = u'\u3052'
750- k = collator.getSortKey(s)
751- if (sys.version_info >= (3,)):
752- byte2int = lambda c: c
753- else:
754- byte2int = ord
755-
756- if ICU_VERSION < '4.6':
757- key = "AC300186DC9D019B0501282800"
758- elif ICU_VERSION < '49.0':
759- key = "791C0186DCFD019B05010D0D00"
760- else:
761- key = "791C0186DA95019B05010D0D00"
762-
763- self.assertTrue(key == ''.join(['%02X' %(byte2int(c)) for c in k]))
764+ self.assertEqual(-1, collator.compare(hira_ge, kana_ge))
765+ hira_ge_key = collator.getSortKey(hira_ge)
766+ kana_ge_key = collator.getSortKey(kana_ge)
767+ self.assertLess(hira_ge_key, kana_ge_key)
768
769 def setupCollator(self, collator):
770
771
772=== modified file 'test/test_MessageFormat.py'
773--- test/test_MessageFormat.py 2011-11-13 12:07:46 +0000
774+++ test/test_MessageFormat.py 2013-07-20 21:08:24 +0000
775@@ -88,6 +88,23 @@
776
777 self.assertTrue(msgFormat.format(args) == u"Kirti est allée à Paris.")
778
779+ def testNamedArgs(self):
780+
781+ if ICU_VERSION >= '4.0':
782+ msg = \
783+ '{num_emails_to_send, plural, ' \
784+ '=0 {unused plural form} ' \
785+ '=1 {One email will be sent.} ' \
786+ 'other {# emails will be sent.}}'
787+
788+ messageFormat = MessageFormat(msg, Locale("en"))
789+
790+ name0 = "num_emails_to_send"
791+ arg0 = Formattable(5)
792+
793+ result = messageFormat.format([name0], [arg0])
794+ self.assertTrue(result == u'5 emails will be sent.')
795+
796
797 if __name__ == "__main__":
798 main()
799
800=== modified file 'transliterator.cpp'
801--- transliterator.cpp 2012-05-10 22:59:17 +0000
802+++ transliterator.cpp 2013-07-20 21:08:24 +0000
803@@ -472,7 +472,7 @@
804 {
805 UnicodeString *u, _u;
806 t_utransposition *utransposition;
807- UBool incremental;
808+ int incremental;
809
810 if (!parseArgs(args, "UOB", &UTransPositionType, &u, &utransposition,
811 &incremental))

Subscribers

People subscribed via source and target branches

to all changes: