svn commit: r552444 - in head/textproc: . py-ttp py-ttp/files
Sunpoet Po-Chuan Hsieh
sunpoet at FreeBSD.org
Thu Oct 15 19:59:39 UTC 2020
Author: sunpoet
Date: Thu Oct 15 19:59:36 2020
New Revision: 552444
URL: https://svnweb.freebsd.org/changeset/ports/552444
Log:
Add py-ttp 0.5.0
TTP is a Python library for semi-structured text parsing using templates.
In essence, TTP can help to:
- Prepare, sort and load text data for parsing
- Parse text using regexes dynamically derived out of templates
- Process matches on the fly using broad set of built-in or custom functions
- Combine match results in a structure with arbitrary hierarchy
- Transform results in desired format to ease consumption by humans or machines
- Return results to various destinations for storage or further processing
WWW: https://github.com/dmulyalin/ttp
Added:
head/textproc/py-ttp/
head/textproc/py-ttp/Makefile (contents, props changed)
head/textproc/py-ttp/distinfo (contents, props changed)
head/textproc/py-ttp/files/
head/textproc/py-ttp/files/patch-ttp-match-ip.py (contents, props changed)
head/textproc/py-ttp/files/patch-ttp-returners-terminal_returner.py (contents, props changed)
head/textproc/py-ttp/files/patch-ttp-utils-loaders.py (contents, props changed)
head/textproc/py-ttp/pkg-descr (contents, props changed)
Modified:
head/textproc/Makefile
Modified: head/textproc/Makefile
==============================================================================
--- head/textproc/Makefile Thu Oct 15 19:52:58 2020 (r552443)
+++ head/textproc/Makefile Thu Oct 15 19:59:36 2020 (r552444)
@@ -1414,6 +1414,7 @@
SUBDIR += py-transifex-client
SUBDIR += py-translationstring
SUBDIR += py-transpopy
+ SUBDIR += py-ttp
SUBDIR += py-ucl
SUBDIR += py-ufal.udpipe
SUBDIR += py-whoosh
Added: head/textproc/py-ttp/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/textproc/py-ttp/Makefile Thu Oct 15 19:59:36 2020 (r552444)
@@ -0,0 +1,27 @@
+# Created by: Po-Chuan Hsieh <sunpoet at FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= ttp
+PORTVERSION= 0.5.0
+CATEGORIES= textproc python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= sunpoet at FreeBSD.org
+COMMENT= Template Text Parser
+
+LICENSE= MIT
+
+USES= dos2unix python
+USE_PYTHON= autoplist concurrent distutils
+
+NO_ARCH= yes
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} > 3000
+post-patch:
+ @${RM} ${WRKSRC}/ttp/utils/load_python_exec_py2.py
+.endif
+
+.include <bsd.port.post.mk>
Added: head/textproc/py-ttp/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/textproc/py-ttp/distinfo Thu Oct 15 19:59:36 2020 (r552444)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1602780720
+SHA256 (ttp-0.5.0.tar.gz) = bc5fc277f052b1c5f18faf10f4a944a55e12b4730556d916ac43578476d2ae11
+SIZE (ttp-0.5.0.tar.gz) = 59510
Added: head/textproc/py-ttp/files/patch-ttp-match-ip.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/textproc/py-ttp/files/patch-ttp-match-ip.py Thu Oct 15 19:59:36 2020 (r552444)
@@ -0,0 +1,56 @@
+--- ttp/match/ip.py.orig 2020-08-16 22:06:01 UTC
++++ ttp/match/ip.py
+@@ -5,9 +5,9 @@ log = logging.getLogger(__name__)
+
+ def to_ip(data, *args):
+ # for py2 support need to convert data to unicode:
+- if _ttp_["python_major_version"] is 2:
++ if _ttp_["python_major_version"] == 2:
+ ipaddr_data = unicode(data)
+- elif _ttp_["python_major_version"] is 3:
++ elif _ttp_["python_major_version"] == 3:
+ ipaddr_data = data
+ if "ipv4" in args:
+ if "/" in ipaddr_data or " " in ipaddr_data:
+@@ -33,9 +33,9 @@ def is_ip(data, *args):
+
+ def to_net(data, *args):
+ # for py2 support need to convert data to unicode:
+- if _ttp_["python_major_version"] is 2:
++ if _ttp_["python_major_version"] == 2:
+ ipaddr_data = unicode(data)
+- elif _ttp_["python_major_version"] is 3:
++ elif _ttp_["python_major_version"] == 3:
+ ipaddr_data = data
+ if "ipv4" in args:
+ return ipaddress.IPv4Network(ipaddr_data), None
+@@ -124,21 +124,21 @@ def cidr_match(data, prefix):
+ check = ip_obj.network.overlaps(ip_net)
+ elif isinstance(ip_obj, ipaddress.IPv4Address) or isinstance(ip_obj, ipaddress.IPv6Address):
+ # if object is ipaddress, need to convert it into ipinterface with /32 mask:
+- if ip_obj.version is 4:
++ if ip_obj.version == 4:
+ # for py2 support need to convert data to unicode:
+- if _ttp_["python_major_version"] is 2:
++ if _ttp_["python_major_version"] == 2:
+ ipaddr_data = unicode("{}/32".format(str(ip_obj)))
+- elif _ttp_["python_major_version"] is 3:
++ elif _ttp_["python_major_version"] == 3:
+ ipaddr_data = "{}/32".format(str(ip_obj))
+ ip_obj = ipaddress.IPv4Interface(ipaddr_data)
+- elif ip_obj.version is 6:
++ elif ip_obj.version == 6:
+ # for py2 support need to convert data to unicode:
+- if _ttp_["python_major_version"] is 2:
++ if _ttp_["python_major_version"] == 2:
+ ipaddr_data = unicode("{}/128".format(str(ip_obj)))
+- elif _ttp_["python_major_version"] is 3:
++ elif _ttp_["python_major_version"] == 3:
+ ipaddr_data = "{}/128".format(str(ip_obj))
+ ip_obj = ipaddress.IPv6Interface(ipaddr_data)
+ check = ip_obj.network.overlaps(ip_net)
+ else:
+ check = None
+- return data, check
+\ No newline at end of file
++ return data, check
Added: head/textproc/py-ttp/files/patch-ttp-returners-terminal_returner.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/textproc/py-ttp/files/patch-ttp-returners-terminal_returner.py Thu Oct 15 19:59:36 2020 (r552444)
@@ -0,0 +1,20 @@
+--- ttp/returners/terminal_returner.py.orig 2020-09-03 21:58:49 UTC
++++ ttp/returners/terminal_returner.py
+@@ -31,13 +31,13 @@ def terminal_returner(data, **kwargs):
+ for yeallow_word in yeallow_words:
+ data = data.replace(yeallow_word, fttr.format(Y, yeallow_word, N))
+ # print output
+- if _ttp_["python_major_version"] is 2:
++ if _ttp_["python_major_version"] == 2:
+ if isinstance(data, str) or isinstance(data, unicode):
+ print(data)
+ else:
+ print(str(data).replace('\\n', '\n'))
+- elif _ttp_["python_major_version"] is 3:
++ elif _ttp_["python_major_version"] == 3:
+ if isinstance(data, str):
+ print(data)
+ else:
+- print(str(data).replace('\\n', '\n'))
+\ No newline at end of file
++ print(str(data).replace('\\n', '\n'))
Added: head/textproc/py-ttp/files/patch-ttp-utils-loaders.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/textproc/py-ttp/files/patch-ttp-utils-loaders.py Thu Oct 15 19:59:36 2020 (r552444)
@@ -0,0 +1,49 @@
+--- ttp/utils/loaders.py.orig 2020-09-14 21:20:38 UTC
++++ ttp/utils/loaders.py
+@@ -33,7 +33,7 @@ def load_files(path, extensions=[], filters=[], read=F
+ if os.path.isfile(path[:5000]):
+ if read:
+ try:
+- if _ttp_["python_major_version"] is 2:
++ if _ttp_["python_major_version"] == 2:
+ with open(path, 'r') as file_obj:
+ return [('text_data', file_obj.read(),)]
+ with open(path, 'r', encoding='utf-8') as file_obj:
+@@ -53,10 +53,10 @@ def load_files(path, extensions=[], filters=[], read=F
+ if read:
+ ret = []
+ for f in files:
+- if _ttp_["python_major_version"] is 2:
++ if _ttp_["python_major_version"] == 2:
+ with open((path + f), 'r') as file_obj:
+ ret.append(('text_data', file_obj.read(),))
+- elif _ttp_["python_major_version"] is 3:
++ elif _ttp_["python_major_version"] == 3:
+ with open((path + f), 'r', encoding='utf-8') as file_obj:
+ ret.append(('text_data', file_obj.read(),))
+ return ret
+@@ -111,7 +111,7 @@ def _get_include_data(text_data, include):
+ return text_data
+
+ def load_ini(text_data, include=None, **kwargs):
+- if _ttp_["python_major_version"] is 3:
++ if _ttp_["python_major_version"] == 3:
+ import configparser
+ cfgparser = configparser.ConfigParser()
+ # to make cfgparser keep the case, e.g. VlaN222 will not become vlan222:
+@@ -132,7 +132,7 @@ def load_ini(text_data, include=None, **kwargs):
+ log.error("ttp_utils.load_struct: Python3, Unable to load ini formatted data\n'{}'".format(text_data))
+ # convert configparser object into dictionary
+ result = {k: dict(cfgparser.items(k)) for k in list(cfgparser.keys())}
+- elif _ttp_["python_major_version"] is 2:
++ elif _ttp_["python_major_version"] == 2:
+ import ConfigParser
+ import StringIO
+ cfgparser = ConfigParser.ConfigParser()
+@@ -217,4 +217,4 @@ def load_csv(text_data, include=None, **kwargs):
+ continue
+ temp = {headers[index]: i for index, i in enumerate(row)}
+ data[temp.pop(key)] = temp
+- return data
+\ No newline at end of file
++ return data
Added: head/textproc/py-ttp/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/textproc/py-ttp/pkg-descr Thu Oct 15 19:59:36 2020 (r552444)
@@ -0,0 +1,11 @@
+TTP is a Python library for semi-structured text parsing using templates.
+
+In essence, TTP can help to:
+- Prepare, sort and load text data for parsing
+- Parse text using regexes dynamically derived out of templates
+- Process matches on the fly using broad set of built-in or custom functions
+- Combine match results in a structure with arbitrary hierarchy
+- Transform results in desired format to ease consumption by humans or machines
+- Return results to various destinations for storage or further processing
+
+WWW: https://github.com/dmulyalin/ttp
More information about the svn-ports-all
mailing list