svn commit: r559827 - in head/chinese/pyzy: . files

Rene Ladan rene at FreeBSD.org
Fri Jan 1 13:27:53 UTC 2021


Author: rene
Date: Fri Jan  1 13:27:52 2021
New Revision: 559827
URL: https://svnweb.freebsd.org/changeset/ports/559827

Log:
  chinese/pyzy: build with Python 3 instead of expired Python 2.7
  
  PR:		249586
  Submitted by:	swills (patch from maintainer)

Added:
  head/chinese/pyzy/files/patch-data_db_android_create__db.py   (contents, props changed)
Modified:
  head/chinese/pyzy/Makefile

Modified: head/chinese/pyzy/Makefile
==============================================================================
--- head/chinese/pyzy/Makefile	Fri Jan  1 12:24:00 2021	(r559826)
+++ head/chinese/pyzy/Makefile	Fri Jan  1 13:27:52 2021	(r559827)
@@ -3,7 +3,7 @@
 
 PORTNAME=	pyzy
 PORTVERSION=	0.1.0
-PORTREVISION=	8
+PORTREVISION=	9
 CATEGORIES=	chinese
 
 MAINTAINER=	henry.hu.sh at gmail.com
@@ -13,12 +13,11 @@ LICENSE=	LGPL21
 
 LIB_DEPENDS=	libsqlite3.so:databases/sqlite3
 
-USE_GITHUB=	yes
-GH_TAGNAME=	6d9c3cd
-
 USES=		autoreconf compiler:c++11-lang gettext-runtime gmake gnome \
-		libtool pathfix pkgconfig python:2.7,build shebangfix
+		libtool pathfix pkgconfig python:3.7+,build shebangfix
 SHEBANG_FILES=	data/db/android/create_db.py
+USE_GITHUB=	yes
+GH_TAGNAME=	6d9c3cd
 USE_GNOME=	glib20
 USE_LDCONFIG=	yes
 

Added: head/chinese/pyzy/files/patch-data_db_android_create__db.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/chinese/pyzy/files/patch-data_db_android_create__db.py	Fri Jan  1 13:27:52 2021	(r559827)
@@ -0,0 +1,90 @@
+--- data/db/android/create_db.py.orig	2020-10-11 20:12:08 UTC
++++ data/db/android/create_db.py
+@@ -3,27 +3,27 @@ from pydict import *
+ from id import *
+ from valid_hanzi import *
+ import sys
++from functools import cmp_to_key
+ 
+ def get_sheng_yun(pinyin):
+     if pinyin == None:
+         return None, None
+     if pinyin == "ng":
+         return "", "en"
+-    for i in xrange(2, 0, -1):
++    for i in range(2, 0, -1):
+         t = pinyin[:i]
+         if t in SHENGMU_DICT:
+             return t, pinyin[len(t):]
+     return "", pinyin
+ 
+ def read_phrases(filename):
+-    buf = file(filename).read()
+-    buf = unicode(buf, "utf16")
++    buf = open(filename, encoding='utf-16').read()
+     buf = buf.strip()
+-    for l in buf.split(u'\n'):
+-        hanzi, freq, flag, pinyin = l.split(u' ', 3)
++    for l in buf.split('\n'):
++        hanzi, freq, flag, pinyin = l.split(' ', 3)
+         freq = float(freq)
+         pinyin = pinyin.split()
+-        if any(map(lambda c: c not in valid_hanzi, hanzi)):
++        if any([c not in valid_hanzi for c in hanzi]):
+             continue
+         yield hanzi, freq, pinyin
+ 
+@@ -33,9 +33,9 @@ def create_db(filename):
+     # con.execute ("PRAGMA synchronous = NORMAL;")
+     # con.execute ("PRAGMA temp_store = MEMORY;")
+     # con.execute ("PRAGMA default_cache_size = 5000;")
+-    print "PRAGMA synchronous = NORMAL;"
+-    print "PRAGMA temp_store = MEMORY;"
+-    print "PRAGMA default_cache_size = 5000;"
++    print("PRAGMA synchronous = NORMAL;")
++    print("PRAGMA temp_store = MEMORY;")
++    print("PRAGMA default_cache_size = 5000;")
+ 
+ 
+     sql = "CREATE TABLE py_phrase_%d (phrase TEXT, freq INTEGER, %s);"
+@@ -44,12 +44,12 @@ def create_db(filename):
+         for j in range(0, i + 1):
+             column.append ("s%d INTEGER" % j)
+             column.append ("y%d INTEGER" % j)
+-        print sql % (i, ",".join(column))
++        print(sql % (i, ",".join(column)))
+         # con.execute(sql % (i, column))
+         # con.commit()
+ 
+     records = list(read_phrases(filename))
+-    records.sort(lambda a, b: 1 if a[1] > b[1] else -1)
++    records.sort(key=cmp_to_key(lambda a, b: 1 if a[1] > b[1] else -1))
+     records_new = []
+     i = 0
+     max_freq = 0.0
+@@ -60,7 +60,7 @@ def create_db(filename):
+         records_new.append((hanzi, i, pinyin))
+     records_new.reverse()
+     
+-    print "BEGIN;"
++    print("BEGIN;")
+     insert_sql = "INSERT INTO py_phrase_%d VALUES (%s);"
+     for hanzi, freq, pinyin in records_new:
+         columns = []
+@@ -69,12 +69,12 @@ def create_db(filename):
+             s, y = pinyin_id[s], pinyin_id[y]
+             columns.append(s)
+             columns.append(y)
+-        values = "'%s', %d, %s" % (hanzi.encode("utf8"), freq, ",".join(map(str,columns)))
++        values = "'%s', %d, %s" % (hanzi, freq, ",".join(map(str,columns)))
+             
+         sql = insert_sql % (len(hanzi) - 1, values)
+-        print sql
+-    print "COMMIT;"
+-    print "VACUUM;"
++        print(sql)
++    print("COMMIT;")
++    print("VACUUM;")
+ 
+ def main():
+     create_db(sys.argv[1])


More information about the svn-ports-head mailing list