pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
+pkg new
Module Name: pkgsrc-wip
Committed By: K.I.A.Derouiche <kamel.derouiche%gmail.com@localhost>
Pushed By: jihbed
Date: Mon Sep 14 12:49:32 2020 +0100
Changeset: 8cfba43e1103060da8bee1632833e7eeaff7a005
Added Files:
lanq/DESCR
lanq/Makefile
lanq/PLIST
lanq/distinfo
py-aioopenssl/DESCR
py-aioopenssl/Makefile
py-aioopenssl/PLIST
py-aioopenssl/distinfo
py-aiosasl/DESCR
py-aiosasl/Makefile
py-aiosasl/PLIST
py-aiosasl/distinfo
py-arxiv/DESCR
py-arxiv/Makefile
py-arxiv/PLIST
py-arxiv/distinfo
py-flask-pwa/DESCR
py-flask-pwa/Makefile
py-flask-pwa/PLIST
py-flask-pwa/distinfo
py-flask-simplelogin/DESCR
py-flask-simplelogin/Makefile
py-flask-simplelogin/PLIST
py-flask-simplelogin/distinfo
py-formulaLab/DESCR
py-formulaLab/Makefile
py-formulaLab/PLIST
py-formulaLab/distinfo
py-grammalecte-fr/DESCR
py-grammalecte-fr/Makefile
py-grammalecte-fr/PLIST
py-grammalecte-fr/distinfo
py-grammalecte-fr/patches/patch-setup.py
py-notify-cli/DESCR
py-notify-cli/Makefile
py-notify-cli/PLIST
py-notify-cli/distinfo
py-notify-py/DESCR
py-notify-py/Makefile
py-notify-py/PLIST
py-notify-py/distinfo
py-notify-py/files/netbsd.py
py-notify-py/patches/patch-notifypy_notify.py
py-notify-py/patches/patch-notifypy_os__notifiers_____init____.py
py-pathos/DESCR
py-pathos/Makefile
py-pathos/PLIST
py-pathos/distinfo
py-pennyLane-PQ/DESCR
py-pennyLane-PQ/Makefile
py-pennyLane-PQ/PLIST
py-pennyLane-PQ/distinfo
py-poisson-approval/DESCR
py-poisson-approval/Makefile
py-poisson-approval/PLIST
py-poisson-approval/distinfo
py-pox/DESCR
py-pox/Makefile
py-pox/PLIST
py-pox/distinfo
py-pox/patches/patch-setup.py
py-ppft/DESCR
py-ppft/Makefile
py-ppft/PLIST
py-ppft/distinfo
py-ptex/DESCR
py-ptex/Makefile
py-ptex/PLIST
py-ptex/distinfo
py-ptyx/DESCR
py-ptyx/Makefile
py-ptyx/PLIST
py-ptyx/distinfo
py-pytrends/DESCR
py-pytrends/Makefile
py-pytrends/PLIST
py-pytrends/distinfo
Log Message:
+pkg new
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=8cfba43e1103060da8bee1632833e7eeaff7a005
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
lanq/DESCR | 1 +
lanq/Makefile | 24 ++
lanq/PLIST | 2 +
lanq/distinfo | 6 +
py-aioopenssl/DESCR | 2 +
py-aioopenssl/Makefile | 18 +
py-aioopenssl/PLIST | 15 +
py-aioopenssl/distinfo | 6 +
py-aiosasl/DESCR | 3 +
py-aiosasl/Makefile | 18 +
py-aiosasl/PLIST | 20 ++
py-aiosasl/distinfo | 6 +
py-arxiv/DESCR | 1 +
py-arxiv/Makefile | 22 ++
py-arxiv/PLIST | 12 +
py-arxiv/distinfo | 6 +
py-flask-pwa/DESCR | 1 +
py-flask-pwa/Makefile | 18 +
py-flask-pwa/PLIST | 26 ++
py-flask-pwa/distinfo | 6 +
py-flask-simplelogin/DESCR | 1 +
py-flask-simplelogin/Makefile | 21 ++
py-flask-simplelogin/PLIST | 35 ++
py-flask-simplelogin/distinfo | 6 +
py-formulaLab/DESCR | 3 +
py-formulaLab/Makefile | 17 +
py-formulaLab/PLIST | 18 +
py-formulaLab/distinfo | 6 +
py-grammalecte-fr/DESCR | 3 +
py-grammalecte-fr/Makefile | 23 ++
py-grammalecte-fr/PLIST | 108 ++++++
py-grammalecte-fr/distinfo | 7 +
py-grammalecte-fr/patches/patch-setup.py | 22 ++
py-notify-cli/DESCR | 1 +
py-notify-cli/Makefile | 16 +
py-notify-cli/PLIST | 19 ++
py-notify-cli/distinfo | 6 +
py-notify-py/DESCR | 1 +
py-notify-py/Makefile | 24 ++
py-notify-py/PLIST | 48 +++
py-notify-py/distinfo | 8 +
py-notify-py/files/netbsd.py | 102 ++++++
py-notify-py/patches/patch-notifypy_notify.py | 22 ++
.../patch-notifypy_os__notifiers_____init____.py | 9 +
py-pathos/DESCR | 14 +
py-pathos/Makefile | 22 ++
py-pathos/PLIST | 129 +++++++
py-pathos/distinfo | 6 +
py-pennyLane-PQ/DESCR | 1 +
py-pennyLane-PQ/Makefile | 18 +
py-pennyLane-PQ/PLIST | 25 ++
py-pennyLane-PQ/distinfo | 6 +
py-poisson-approval/DESCR | 1 +
py-poisson-approval/Makefile | 27 ++
py-poisson-approval/PLIST | 370 +++++++++++++++++++++
py-poisson-approval/distinfo | 6 +
py-pox/DESCR | 9 +
py-pox/Makefile | 20 ++
py-pox/PLIST | 37 +++
py-pox/distinfo | 7 +
py-pox/patches/patch-setup.py | 13 +
py-ppft/DESCR | 6 +
py-ppft/Makefile | 19 ++
py-ppft/PLIST | 83 +++++
py-ppft/distinfo | 6 +
py-ptex/DESCR | 2 +
py-ptex/Makefile | 17 +
py-ptex/PLIST | 14 +
py-ptex/distinfo | 6 +
py-ptyx/DESCR | 6 +
py-ptyx/Makefile | 21 ++
py-ptyx/PLIST | 75 +++++
py-ptyx/distinfo | 6 +
py-pytrends/DESCR | 5 +
py-pytrends/Makefile | 20 ++
py-pytrends/PLIST | 4 +
py-pytrends/distinfo | 6 +
77 files changed, 1746 insertions(+)
diffs:
diff --git a/lanq/DESCR b/lanq/DESCR
new file mode 100644
index 0000000000..f848a07ab0
--- /dev/null
+++ b/lanq/DESCR
@@ -0,0 +1 @@
+A quantum imperative programming language
diff --git a/lanq/Makefile b/lanq/Makefile
new file mode 100644
index 0000000000..1677c2a7c9
--- /dev/null
+++ b/lanq/Makefile
@@ -0,0 +1,24 @@
+# $NetBSD$
+
+DISTNAME= lanq-0.6.3
+CATEGORIES= lang
+MASTER_SITES= https://svwh.dl.sourceforge.net/project/lanq/LanQ/0.6.3/
+EXTRACT_SUFX= .jar
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= http://lanq.sourceforge.net/
+COMMENT= Quantum imperative programming language
+LICENSE= gnu-gpl-v2
+
+WRKSRC= ${WRKDIR}
+
+NO_BUILD= yes
+PKG_JVMS_ACCEPTED= sun-jdk7 jdk15 jdk16 openjdk8 openjdk11
+
+
+INSTALLATION_DIRS= bin
+
+do-install:
+ ${INSTALL_DATA} ${WRKSRC}/${DISTNAME}.jar ${DESTDIR}${PREFIX}/bin/${DISTNAME}.jar
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/lanq/PLIST b/lanq/PLIST
new file mode 100644
index 0000000000..b5ba2f14cd
--- /dev/null
+++ b/lanq/PLIST
@@ -0,0 +1,2 @@
+@comment $NetBSD$
+bin/${PKGNAME}.jar
diff --git a/lanq/distinfo b/lanq/distinfo
new file mode 100644
index 0000000000..1bdf7a9906
--- /dev/null
+++ b/lanq/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (lanq-0.6.3.jar) = 5b10c72fd773241fd1ba6d2bc5b7b0ab2b8b6af2
+RMD160 (lanq-0.6.3.jar) = 5d1ea89ae92fe5c8bf988d95aa5d7c3137b25bb9
+SHA512 (lanq-0.6.3.jar) = 6c7ee6f09bb9b45e578d6aa44d8300bda449bc3045694d7d1a5c75b3a2afed183b5c6870bb8383c520d4e48bbc4ef70a5fc58aed08a5b251ccd8e015e6a8189a
+Size (lanq-0.6.3.jar) = 1101994 bytes
diff --git a/py-aioopenssl/DESCR b/py-aioopenssl/DESCR
new file mode 100644
index 0000000000..043e052d27
--- /dev/null
+++ b/py-aioopenssl/DESCR
@@ -0,0 +1,2 @@
+aioopenssl provides a asyncio Transport which uses PyOpenSSL
+instead of the built-in ssl module
diff --git a/py-aioopenssl/Makefile b/py-aioopenssl/Makefile
new file mode 100644
index 0000000000..e5d858b22e
--- /dev/null
+++ b/py-aioopenssl/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD$
+
+DISTNAME= aioopenssl-0.5.1
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= security python
+MASTER_SITES= https://files.pythonhosted.org/packages/b1/34/e28adb7600d8ccff787a841241bc2591a3661a66e4f171d38956c0cd3002/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/horazont/aioopenssl
+COMMENT= TLS-capable transport using OpenSSL for asyncio
+LICENSE= apache-2.0
+
+DEPENDS+= ${PYPKGPREFIX}-OpenSSL>=19.1.0:../../security/py-OpenSSL
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-aioopenssl/PLIST b/py-aioopenssl/PLIST
new file mode 100644
index 0000000000..4285358fdf
--- /dev/null
+++ b/py-aioopenssl/PLIST
@@ -0,0 +1,15 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/aioopenssl/__init__.py
+${PYSITELIB}/aioopenssl/__init__.pyc
+${PYSITELIB}/aioopenssl/__init__.pyo
+${PYSITELIB}/aioopenssl/utils.py
+${PYSITELIB}/aioopenssl/utils.pyc
+${PYSITELIB}/aioopenssl/utils.pyo
+${PYSITELIB}/aioopenssl/version.py
+${PYSITELIB}/aioopenssl/version.pyc
+${PYSITELIB}/aioopenssl/version.pyo
diff --git a/py-aioopenssl/distinfo b/py-aioopenssl/distinfo
new file mode 100644
index 0000000000..a9b2cda380
--- /dev/null
+++ b/py-aioopenssl/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (aioopenssl-0.5.1.tar.gz) = e5b82bfab8e70c32f06f94cdc1ff8135e455d6bf
+RMD160 (aioopenssl-0.5.1.tar.gz) = 1a7cad1b909dc40bc802b2c206a4e0f783457f58
+SHA512 (aioopenssl-0.5.1.tar.gz) = 65f766df51243df3c1d3d3d020de3618ebb88f2c9d1d9597d0a7f28b9acf0a57e28bec756f60490addd2be968df02707c0256b524f9dc7868fe297ae1bf134f1
+Size (aioopenssl-0.5.1.tar.gz) = 14809 bytes
diff --git a/py-aiosasl/DESCR b/py-aiosasl/DESCR
new file mode 100644
index 0000000000..5113907c42
--- /dev/null
+++ b/py-aiosasl/DESCR
@@ -0,0 +1,3 @@
+aiosasl provides a generic, asyncio-based SASL library. It can be used
+with any protocol, provided the neccessary interface code is provided
+by the application or protocol implementation.
diff --git a/py-aiosasl/Makefile b/py-aiosasl/Makefile
new file mode 100644
index 0000000000..46a0acba09
--- /dev/null
+++ b/py-aiosasl/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD$
+
+DISTNAME= aiosasl-0.4.1
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= security python
+MASTER_SITES= https://files.pythonhosted.org/packages/c4/5c/6522806fd01028c3b17e2309de6e4d2a989e0bde6f888a6ec70b9e1226b0/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/horazont/aiosasl
+COMMENT= Pure-python, protocol agnostic SASL library for asyncio
+LICENSE= gnu-gpl-v1 OR gnu-gpl-v2 OR gnu-gpl-v3
+
+USE_LANGUAGES= # none
+
+PYTHON_VERSIONS_INCOMPATIBLE= 27
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-aiosasl/PLIST b/py-aiosasl/PLIST
new file mode 100644
index 0000000000..1c14dbb5c5
--- /dev/null
+++ b/py-aiosasl/PLIST
@@ -0,0 +1,20 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/aiosasl/__init__.py
+${PYSITELIB}/aiosasl/__init__.pyc
+${PYSITELIB}/aiosasl/__init__.pyo
+${PYSITELIB}/aiosasl/channel_binding_methods.py
+${PYSITELIB}/aiosasl/channel_binding_methods.pyc
+${PYSITELIB}/aiosasl/channel_binding_methods.pyo
+${PYSITELIB}/aiosasl/stringprep.py
+${PYSITELIB}/aiosasl/stringprep.pyc
+${PYSITELIB}/aiosasl/stringprep.pyo
+${PYSITELIB}/aiosasl/utils.py
+${PYSITELIB}/aiosasl/utils.pyc
+${PYSITELIB}/aiosasl/utils.pyo
+${PYSITELIB}/aiosasl/version.py
+${PYSITELIB}/aiosasl/version.pyc
+${PYSITELIB}/aiosasl/version.pyo
diff --git a/py-aiosasl/distinfo b/py-aiosasl/distinfo
new file mode 100644
index 0000000000..fbe87e5cb4
--- /dev/null
+++ b/py-aiosasl/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (aiosasl-0.4.1.tar.gz) = e47ceba30ae7d4819651ded29f87758d63a46f3c
+RMD160 (aiosasl-0.4.1.tar.gz) = 66b0420cb887b368dbdcb8f4f0048a84aae1936e
+SHA512 (aiosasl-0.4.1.tar.gz) = 5246b40d3f9b845cbab9aa81c751dc88e34d705cb6df043e360c05182fb22cbd04b54382d1eec2e88d085372c2c52271c48d78b19b1e40ee14c84f1d52d82883
+Size (aiosasl-0.4.1.tar.gz) = 27952 bytes
diff --git a/py-arxiv/DESCR b/py-arxiv/DESCR
new file mode 100644
index 0000000000..2cebb85235
--- /dev/null
+++ b/py-arxiv/DESCR
@@ -0,0 +1 @@
+Python wrapper for the arXiv API: http://arxiv.org/help/api/
diff --git a/py-arxiv/Makefile b/py-arxiv/Makefile
new file mode 100644
index 0000000000..8dc105ac35
--- /dev/null
+++ b/py-arxiv/Makefile
@@ -0,0 +1,22 @@
+# $NetBSD$
+
+DISTNAME= arxiv-0.5.3
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= misc python
+MASTER_SITES= https://files.pythonhosted.org/packages/7b/c4/f1c53cdff1e8fbd3eba97276a5112745c1cb861bad43fb5b7c5c033159c1/
+
+MAINTAINER= jihbed.research%gmail.com@localhost
+HOMEPAGE= https://github.com/lukasschwab/arxiv.py
+COMMENT= Python wrapper for the arXiv API
+LICENSE= mit
+
+DEPENDS+= ${PYPKGPREFIX}-feedparser>=5.2.1:../../textproc/py-feedparser
+DEPENDS+= ${PYPKGPREFIX}-requests>=2.24.0:../../devel/py-requests
+TEST_DEPENDS+= # TODO: pytest>=0
+
+USE_LANGUAGES= # none
+
+#BUILDLINK_API_DEPENDS.${PYPKGPREFIX}-numpy+= ${PYPKGPREFIX}-numpy>=1.19.1
+#.include "../../math/py-numpy/buildlink3.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-arxiv/PLIST b/py-arxiv/PLIST
new file mode 100644
index 0000000000..9e268b7df2
--- /dev/null
+++ b/py-arxiv/PLIST
@@ -0,0 +1,12 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/arxiv/__init__.py
+${PYSITELIB}/arxiv/__init__.pyc
+${PYSITELIB}/arxiv/__init__.pyo
+${PYSITELIB}/arxiv/arxiv.py
+${PYSITELIB}/arxiv/arxiv.pyc
+${PYSITELIB}/arxiv/arxiv.pyo
diff --git a/py-arxiv/distinfo b/py-arxiv/distinfo
new file mode 100644
index 0000000000..5350c0ce5d
--- /dev/null
+++ b/py-arxiv/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (arxiv-0.5.3.tar.gz) = bbfdaec4994548d78bd1fe4fa2a99b25a0bf2adc
+RMD160 (arxiv-0.5.3.tar.gz) = 049a6b9bf6b62973c01cbf72d0dc4ec61ab974a4
+SHA512 (arxiv-0.5.3.tar.gz) = 74b4f1f25312aa50bc0b5eb4b95fc8feacb5c9faef8387f92c1e7ff9d43018bbbb8141e1d474e5fa3696eee01e07ca1afe7ab835522c321365dcdd9971caf152
+Size (arxiv-0.5.3.tar.gz) = 6013 bytes
diff --git a/py-flask-pwa/DESCR b/py-flask-pwa/DESCR
new file mode 100644
index 0000000000..e4c7eebad3
--- /dev/null
+++ b/py-flask-pwa/DESCR
@@ -0,0 +1 @@
+Extends your Flask app into a PWA
diff --git a/py-flask-pwa/Makefile b/py-flask-pwa/Makefile
new file mode 100644
index 0000000000..fd802e0633
--- /dev/null
+++ b/py-flask-pwa/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD$
+
+DISTNAME= flask_pwa-0.1.0
+PKGNAME= ${PYPKGPREFIX}-flask-pwa-0.1.0
+CATEGORIES= www python
+MASTER_SITES= https://files.pythonhosted.org/packages/a9/88/4d4e9c554cf81247b49c30696f1b2db047ad6c2f9aea0f0b0e4e6ba17c0a/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/pacotei/flask-pwa
+COMMENT= Extends your Flask app into a PWA
+#LICENSE= # TODO: (see mk/license.mk)
+
+DEPENDS+= ${PYPKGPREFIX}-flask-[0-9]*:../../www/py-flask
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-flask-pwa/PLIST b/py-flask-pwa/PLIST
new file mode 100644
index 0000000000..3aa94c139b
--- /dev/null
+++ b/py-flask-pwa/PLIST
@@ -0,0 +1,26 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/flask_pwa/__init__.py
+${PYSITELIB}/flask_pwa/__init__.pyc
+${PYSITELIB}/flask_pwa/__init__.pyo
+${PYSITELIB}/flask_pwa/__version__.py
+${PYSITELIB}/flask_pwa/__version__.pyc
+${PYSITELIB}/flask_pwa/__version__.pyo
+${PYSITELIB}/flask_pwa/static/images/apple-icon-180x180.png
+${PYSITELIB}/flask_pwa/static/images/favicon.ico
+${PYSITELIB}/flask_pwa/static/images/icons/icon-128x128.png
+${PYSITELIB}/flask_pwa/static/images/icons/icon-144x144.png
+${PYSITELIB}/flask_pwa/static/images/icons/icon-152x152.png
+${PYSITELIB}/flask_pwa/static/images/icons/icon-192x192.png
+${PYSITELIB}/flask_pwa/static/images/icons/icon-384x384.png
+${PYSITELIB}/flask_pwa/static/images/icons/icon-512x512.png
+${PYSITELIB}/flask_pwa/static/images/icons/icon-72x72.png
+${PYSITELIB}/flask_pwa/static/images/icons/icon-96x96.png
+${PYSITELIB}/flask_pwa/static/js/sw.js
+${PYSITELIB}/flask_pwa/static/manifest.json
+${PYSITELIB}/flask_pwa/templates/pwa/base.html
+${PYSITELIB}/flask_pwa/templates/pwa/offline.html
diff --git a/py-flask-pwa/distinfo b/py-flask-pwa/distinfo
new file mode 100644
index 0000000000..ebeb8be4fa
--- /dev/null
+++ b/py-flask-pwa/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (flask_pwa-0.1.0.tar.gz) = f521e55b603afa8320de8dd1c216d6a91a95a15f
+RMD160 (flask_pwa-0.1.0.tar.gz) = 7e0124eb5e6e178ba9cef6c3333ae663b608649b
+SHA512 (flask_pwa-0.1.0.tar.gz) = d63b36e0a8bc7cbd67398d82850374fc5f8d232205aea5a4a73d71e64e52deda4a8badb796e3658a87b751f766081278b3f6db4b40cb78589e47d9c96bb8f6a7
+Size (flask_pwa-0.1.0.tar.gz) = 139223 bytes
diff --git a/py-flask-simplelogin/DESCR b/py-flask-simplelogin/DESCR
new file mode 100644
index 0000000000..b44aaae99a
--- /dev/null
+++ b/py-flask-simplelogin/DESCR
@@ -0,0 +1 @@
+Flask Simple Login - Login Extension for Flask
diff --git a/py-flask-simplelogin/Makefile b/py-flask-simplelogin/Makefile
new file mode 100644
index 0000000000..84d6e4001a
--- /dev/null
+++ b/py-flask-simplelogin/Makefile
@@ -0,0 +1,21 @@
+# $NetBSD$
+
+DISTNAME= flask_simplelogin-0.0.7
+PKGNAME= ${PYPKGPREFIX}-flask-simplelogin-0.0.7
+CATEGORIES= www python
+MASTER_SITES= https://files.pythonhosted.org/packages/23/fb/732df9ec0725c35d7759d797428c768992ad8ba7c906595d02330b42735c/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/cuducos/flask_simplelogin/
+COMMENT= Flask Simple Login - Login Extension for Flask
+LICENSE= mit
+
+
+DEPENDS+= ${PYPKGPREFIX}-click>=7.1.2:../../devel/py-click
+DEPENDS+= ${PYPKGPREFIX}-flask-[0-9]*:../../www/py-flask
+DEPENDS+= ${PYPKGPREFIX}-flask-wtf>=0.14.3:../../www/py-flask-wtf
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-flask-simplelogin/PLIST b/py-flask-simplelogin/PLIST
new file mode 100644
index 0000000000..d67c7361b0
--- /dev/null
+++ b/py-flask-simplelogin/PLIST
@@ -0,0 +1,35 @@
+@comment $NetBSD$
+${PYSITELIB}/example/__init__.py
+${PYSITELIB}/example/__init__.pyc
+${PYSITELIB}/example/__init__.pyo
+${PYSITELIB}/example/manage.py
+${PYSITELIB}/example/manage.pyc
+${PYSITELIB}/example/manage.pyo
+${PYSITELIB}/example/settings.py
+${PYSITELIB}/example/settings.pyc
+${PYSITELIB}/example/settings.pyo
+${PYSITELIB}/example/simple_app.py
+${PYSITELIB}/example/simple_app.pyc
+${PYSITELIB}/example/simple_app.pyo
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/flask_simplelogin/__init__.py
+${PYSITELIB}/flask_simplelogin/__init__.pyc
+${PYSITELIB}/flask_simplelogin/__init__.pyo
+${PYSITELIB}/flask_simplelogin/templates/login.html
+${PYSITELIB}/tests/__init__.py
+${PYSITELIB}/tests/__init__.pyc
+${PYSITELIB}/tests/__init__.pyo
+${PYSITELIB}/tests/conftest.py
+${PYSITELIB}/tests/conftest.pyc
+${PYSITELIB}/tests/conftest.pyo
+${PYSITELIB}/tests/test_app.py
+${PYSITELIB}/tests/test_app.pyc
+${PYSITELIB}/tests/test_app.pyo
+${PYSITELIB}/tests/test_config.py
+${PYSITELIB}/tests/test_config.pyc
+${PYSITELIB}/tests/test_config.pyo
diff --git a/py-flask-simplelogin/distinfo b/py-flask-simplelogin/distinfo
new file mode 100644
index 0000000000..0153f076f0
--- /dev/null
+++ b/py-flask-simplelogin/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (flask_simplelogin-0.0.7.tar.gz) = 729d6f05fb097704ac6e841a624bdc67dcd573ab
+RMD160 (flask_simplelogin-0.0.7.tar.gz) = 845fd9d6ed4efc71ed423d7cf03bdbfaa45ab7f4
+SHA512 (flask_simplelogin-0.0.7.tar.gz) = cecc05b7b8c4e8e5cff2d6ff5fbf63e992c8f72f8a5d589748e29d5ebce1e08fc8e71bf5e38c99253d28ffad9bf9b4d7d75c485333e87e5a9b126ac4194eac8b
+Size (flask_simplelogin-0.0.7.tar.gz) = 37651 bytes
diff --git a/py-formulaLab/DESCR b/py-formulaLab/DESCR
new file mode 100644
index 0000000000..47cdcdeaf0
--- /dev/null
+++ b/py-formulaLab/DESCR
@@ -0,0 +1,3 @@
+FormulaLab is a package that allows you to derive new formulas, search
+in formulas database, manage and connect your database efficiently
+to your code
diff --git a/py-formulaLab/Makefile b/py-formulaLab/Makefile
new file mode 100644
index 0000000000..1e8dc47da1
--- /dev/null
+++ b/py-formulaLab/Makefile
@@ -0,0 +1,17 @@
+# $NetBSD$
+
+DISTNAME= FormulaLab-0.1.0
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME:tl}
+CATEGORIES= math
+MASTER_SITES= https://files.pythonhosted.org/packages/37/95/b301ad2d7659a2c8ac1fd3e652a8deda36b98a5d697bf31b774dd61b1cf5/
+
+MAINTAINER= jihbed.research%gmail.com@localhost
+HOMEPAGE= https://azizalqasem.github.io/FormulaLab/index.html
+COMMENT= Search Engine of Mathmatical Formulas Database
+LICENSE= mit
+
+DEPENDS+= ${PYPKGPREFIX}-pandas>=0.25.3:../../math/py-pandas
+DEPENDS+= ${PYPKGPREFIX}-sympy>=1.5.1:../../math/py-sympy
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-formulaLab/PLIST b/py-formulaLab/PLIST
new file mode 100644
index 0000000000..c06a19a9e1
--- /dev/null
+++ b/py-formulaLab/PLIST
@@ -0,0 +1,18 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/FormulaLab/__init__.py
+${PYSITELIB}/FormulaLab/__init__.pyc
+${PYSITELIB}/FormulaLab/__init__.pyo
+${PYSITELIB}/FormulaLab/ftools.py
+${PYSITELIB}/FormulaLab/ftools.pyc
+${PYSITELIB}/FormulaLab/ftools.pyo
+${PYSITELIB}/FormulaLab/search.py
+${PYSITELIB}/FormulaLab/search.pyc
+${PYSITELIB}/FormulaLab/search.pyo
+${PYSITELIB}/FormulaLab/test_search.py
+${PYSITELIB}/FormulaLab/test_search.pyc
+${PYSITELIB}/FormulaLab/test_search.pyo
diff --git a/py-formulaLab/distinfo b/py-formulaLab/distinfo
new file mode 100644
index 0000000000..379418e417
--- /dev/null
+++ b/py-formulaLab/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (FormulaLab-0.1.0.tar.gz) = 3c003931a0ca49906671726d392609d34eddf346
+RMD160 (FormulaLab-0.1.0.tar.gz) = 5995b42c873a395eb660b7378e5862bebda562f8
+SHA512 (FormulaLab-0.1.0.tar.gz) = b328754f0f53e682b4d93fd434da98b59fdf1f8772909c9b2e1c37f27a28df3f18f2fd3edb9720e994cbbfddfa5156763a52f77388c91f8afb837f16521dc46d
+Size (FormulaLab-0.1.0.tar.gz) = 11336 bytes
diff --git a/py-grammalecte-fr/DESCR b/py-grammalecte-fr/DESCR
new file mode 100644
index 0000000000..3e589c637a
--- /dev/null
+++ b/py-grammalecte-fr/DESCR
@@ -0,0 +1,3 @@
+Grammalecte is an Open Source grammar and typographic corrector dedicated to
+the French language. It attempts to help writing French without spoiling
+users' attention with false alarms.
diff --git a/py-grammalecte-fr/Makefile b/py-grammalecte-fr/Makefile
new file mode 100644
index 0000000000..e4b0408d9a
--- /dev/null
+++ b/py-grammalecte-fr/Makefile
@@ -0,0 +1,23 @@
+# $NetBSD$
+
+DISTNAME= Grammalecte-fr-v1.11.0
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S,-v,-,:tl}
+CATEGORIES= textproc
+MASTER_SITES= https://grammalecte.net/grammalecte/zip/
+EXTRACT_SUFX= .zip
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://grammalecte.net
+COMMENT= French grammar and typographic corrector
+LICENSE= gnu-gpl-v3
+
+WRKSRC= ${WRKDIR}
+
+USE_LANGUAGES= # none
+
+post-extract:
+ ${MV} ${WRKSRC}/grammalecte-cli.py ${WRKSRC}/grammalecte-cli.py${PYVERSSUFFIX}
+ ${MV} ${WRKSRC}/grammalecte-server.py ${WRKSRC}/grammalecte-server.py${PYVERSSUFFIX}
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-grammalecte-fr/PLIST b/py-grammalecte-fr/PLIST
new file mode 100644
index 0000000000..7d43db5a50
--- /dev/null
+++ b/py-grammalecte-fr/PLIST
@@ -0,0 +1,108 @@
+@comment $NetBSD$
+bin/grammalecte-cli.py${PYVERSSUFFIX}
+bin/grammalecte-server.py${PYVERSSUFFIX}
+${PYSITELIB}/Grammalecte_fr-${PKGVERSION}-py${PYVERSSUFFIX}.egg-info/PKG-INFO
+${PYSITELIB}/Grammalecte_fr-${PKGVERSION}-py${PYVERSSUFFIX}.egg-info/SOURCES.txt
+${PYSITELIB}/Grammalecte_fr-${PKGVERSION}-py${PYVERSSUFFIX}.egg-info/dependency_links.txt
+${PYSITELIB}/Grammalecte_fr-${PKGVERSION}-py${PYVERSSUFFIX}.egg-info/top_level.txt
+${PYSITELIB}/grammalecte/README.txt
+${PYSITELIB}/grammalecte/WARNING.txt
+${PYSITELIB}/grammalecte/__init__.py
+${PYSITELIB}/grammalecte/__init__.pyc
+${PYSITELIB}/grammalecte/__init__.pyo
+${PYSITELIB}/grammalecte/bottle.py
+${PYSITELIB}/grammalecte/bottle.pyc
+${PYSITELIB}/grammalecte/bottle.pyo
+${PYSITELIB}/grammalecte/fr/__init__.py
+${PYSITELIB}/grammalecte/fr/__init__.pyc
+${PYSITELIB}/grammalecte/fr/__init__.pyo
+${PYSITELIB}/grammalecte/fr/conj.py
+${PYSITELIB}/grammalecte/fr/conj.pyc
+${PYSITELIB}/grammalecte/fr/conj.pyo
+${PYSITELIB}/grammalecte/fr/conj_data.py
+${PYSITELIB}/grammalecte/fr/conj_data.pyc
+${PYSITELIB}/grammalecte/fr/conj_data.pyo
+${PYSITELIB}/grammalecte/fr/conj_generator.py
+${PYSITELIB}/grammalecte/fr/conj_generator.pyc
+${PYSITELIB}/grammalecte/fr/conj_generator.pyo
+${PYSITELIB}/grammalecte/fr/cregex.py
+${PYSITELIB}/grammalecte/fr/cregex.pyc
+${PYSITELIB}/grammalecte/fr/cregex.pyo
+${PYSITELIB}/grammalecte/fr/gc_engine.py
+${PYSITELIB}/grammalecte/fr/gc_engine.pyc
+${PYSITELIB}/grammalecte/fr/gc_engine.pyo
+${PYSITELIB}/grammalecte/fr/gc_options.py
+${PYSITELIB}/grammalecte/fr/gc_options.pyc
+${PYSITELIB}/grammalecte/fr/gc_options.pyo
+${PYSITELIB}/grammalecte/fr/gc_rules.py
+${PYSITELIB}/grammalecte/fr/gc_rules.pyc
+${PYSITELIB}/grammalecte/fr/gc_rules.pyo
+${PYSITELIB}/grammalecte/fr/gc_rules_graph.py
+${PYSITELIB}/grammalecte/fr/gc_rules_graph.pyc
+${PYSITELIB}/grammalecte/fr/gc_rules_graph.pyo
+${PYSITELIB}/grammalecte/fr/lexicographe.py
+${PYSITELIB}/grammalecte/fr/lexicographe.pyc
+${PYSITELIB}/grammalecte/fr/lexicographe.pyo
+${PYSITELIB}/grammalecte/fr/locutions_data.py
+${PYSITELIB}/grammalecte/fr/locutions_data.pyc
+${PYSITELIB}/grammalecte/fr/locutions_data.pyo
+${PYSITELIB}/grammalecte/fr/mfsp.py
+${PYSITELIB}/grammalecte/fr/mfsp.pyc
+${PYSITELIB}/grammalecte/fr/mfsp.pyo
+${PYSITELIB}/grammalecte/fr/mfsp_data.py
+${PYSITELIB}/grammalecte/fr/mfsp_data.pyc
+${PYSITELIB}/grammalecte/fr/mfsp_data.pyo
+${PYSITELIB}/grammalecte/fr/phonet.py
+${PYSITELIB}/grammalecte/fr/phonet.pyc
+${PYSITELIB}/grammalecte/fr/phonet.pyo
+${PYSITELIB}/grammalecte/fr/phonet_data.py
+${PYSITELIB}/grammalecte/fr/phonet_data.pyc
+${PYSITELIB}/grammalecte/fr/phonet_data.pyo
+${PYSITELIB}/grammalecte/fr/tests.py
+${PYSITELIB}/grammalecte/fr/tests.pyc
+${PYSITELIB}/grammalecte/fr/tests.pyo
+${PYSITELIB}/grammalecte/fr/textformatter.py
+${PYSITELIB}/grammalecte/fr/textformatter.pyc
+${PYSITELIB}/grammalecte/fr/textformatter.pyo
+${PYSITELIB}/grammalecte/grammar_checker.py
+${PYSITELIB}/grammalecte/grammar_checker.pyc
+${PYSITELIB}/grammalecte/grammar_checker.pyo
+${PYSITELIB}/grammalecte/graphspell/__init__.py
+${PYSITELIB}/grammalecte/graphspell/__init__.pyc
+${PYSITELIB}/grammalecte/graphspell/__init__.pyo
+${PYSITELIB}/grammalecte/graphspell/_dictionaries/fr-allvars.bdic
+${PYSITELIB}/grammalecte/graphspell/_dictionaries/fr-classic.bdic
+${PYSITELIB}/grammalecte/graphspell/_dictionaries/fr-reform.bdic
+${PYSITELIB}/grammalecte/graphspell/char_player.py
+${PYSITELIB}/grammalecte/graphspell/char_player.pyc
+${PYSITELIB}/grammalecte/graphspell/char_player.pyo
+${PYSITELIB}/grammalecte/graphspell/dawg.py
+${PYSITELIB}/grammalecte/graphspell/dawg.pyc
+${PYSITELIB}/grammalecte/graphspell/dawg.pyo
+${PYSITELIB}/grammalecte/graphspell/echo.py
+${PYSITELIB}/grammalecte/graphspell/echo.pyc
+${PYSITELIB}/grammalecte/graphspell/echo.pyo
+${PYSITELIB}/grammalecte/graphspell/fr.py
+${PYSITELIB}/grammalecte/graphspell/fr.pyc
+${PYSITELIB}/grammalecte/graphspell/fr.pyo
+${PYSITELIB}/grammalecte/graphspell/ibdawg.py
+${PYSITELIB}/grammalecte/graphspell/ibdawg.pyc
+${PYSITELIB}/grammalecte/graphspell/ibdawg.pyo
+${PYSITELIB}/grammalecte/graphspell/keyboard_chars_proximity.py
+${PYSITELIB}/grammalecte/graphspell/keyboard_chars_proximity.pyc
+${PYSITELIB}/grammalecte/graphspell/keyboard_chars_proximity.pyo
+${PYSITELIB}/grammalecte/graphspell/progressbar.py
+${PYSITELIB}/grammalecte/graphspell/progressbar.pyc
+${PYSITELIB}/grammalecte/graphspell/progressbar.pyo
+${PYSITELIB}/grammalecte/graphspell/spellchecker.py
+${PYSITELIB}/grammalecte/graphspell/spellchecker.pyc
+${PYSITELIB}/grammalecte/graphspell/spellchecker.pyo
+${PYSITELIB}/grammalecte/graphspell/str_transform.py
+${PYSITELIB}/grammalecte/graphspell/str_transform.pyc
+${PYSITELIB}/grammalecte/graphspell/str_transform.pyo
+${PYSITELIB}/grammalecte/graphspell/tokenizer.py
+${PYSITELIB}/grammalecte/graphspell/tokenizer.pyc
+${PYSITELIB}/grammalecte/graphspell/tokenizer.pyo
+${PYSITELIB}/grammalecte/text.py
+${PYSITELIB}/grammalecte/text.pyc
+${PYSITELIB}/grammalecte/text.pyo
diff --git a/py-grammalecte-fr/distinfo b/py-grammalecte-fr/distinfo
new file mode 100644
index 0000000000..29f28ba79e
--- /dev/null
+++ b/py-grammalecte-fr/distinfo
@@ -0,0 +1,7 @@
+$NetBSD$
+
+SHA1 (Grammalecte-fr-v1.11.0.zip) = c9c73f1e84bac9e536c083a485ddd4b0c1d91122
+RMD160 (Grammalecte-fr-v1.11.0.zip) = 8f67442849e8167dc8d8ca01b2f99d0dac6c64d6
+SHA512 (Grammalecte-fr-v1.11.0.zip) = ea6e6a5756c612054231a99a03405d48bbb1273b9ae4d006ad08a63277076f7b1f0d85e071d235f6e9ca5890e0ad09c82e5007b7b4a2fd9615dbb4a66a635756
+Size (Grammalecte-fr-v1.11.0.zip) = 3780301 bytes
+SHA1 (patch-setup.py) = 9fe98e2300d75d71ac9ed3c0a79df105eca579aa
diff --git a/py-grammalecte-fr/patches/patch-setup.py b/py-grammalecte-fr/patches/patch-setup.py
new file mode 100644
index 0000000000..0027b3e96d
--- /dev/null
+++ b/py-grammalecte-fr/patches/patch-setup.py
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- setup.py.orig 2020-07-23 11:00:40.000000000 +0000
++++ setup.py
+@@ -3,7 +3,7 @@ See:
+ https://packaging.python.org/en/latest/distributing.html
+ https://github.com/pypa/sampleproject
+ """
+-
++import sys
+ # Always prefer setuptools over distutils
+ from setuptools import setup, find_packages
+
+@@ -62,7 +62,7 @@ setup(
+ keywords='French grammar checker correcteur grammatical français',
+
+ # Scripts
+- scripts=['grammalecte-cli.py', 'grammalecte-server.py'],
++ scripts=['grammalecte-cli.py'+sys.version[0:3], 'grammalecte-server.py'+sys.version[0:3]],
+
+ # You can just specify the packages manually here if your project is
+ # simple. Or you can use find_packages().
diff --git a/py-notify-cli/DESCR b/py-notify-cli/DESCR
new file mode 100644
index 0000000000..092d87ee13
--- /dev/null
+++ b/py-notify-cli/DESCR
@@ -0,0 +1 @@
+A python client for notify-server
diff --git a/py-notify-cli/Makefile b/py-notify-cli/Makefile
new file mode 100644
index 0000000000..5d790cce77
--- /dev/null
+++ b/py-notify-cli/Makefile
@@ -0,0 +1,16 @@
+# $NetBSD$
+
+DISTNAME= notify-cli-0.1.2
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= sysutils python
+MASTER_SITES= https://files.pythonhosted.org/packages/80/a8/6b5577fdce19ea2b640d645f0da140c77a94a8e7e03cde112f10c8724d28/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/matthewscholefield/notify-server
+COMMENT= Python client for notify-server
+LICENSE= mit
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-notify-cli/PLIST b/py-notify-cli/PLIST
new file mode 100644
index 0000000000..f45d6cfb60
--- /dev/null
+++ b/py-notify-cli/PLIST
@@ -0,0 +1,19 @@
+@comment $NetBSD$
+bin/notify-cli
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/notify_cli/__init__.py
+${PYSITELIB}/notify_cli/__init__.pyc
+${PYSITELIB}/notify_cli/__init__.pyo
+${PYSITELIB}/notify_cli/__main__.py
+${PYSITELIB}/notify_cli/__main__.pyc
+${PYSITELIB}/notify_cli/__main__.pyo
+${PYSITELIB}/notify_cli/binary_protocol.py
+${PYSITELIB}/notify_cli/binary_protocol.pyc
+${PYSITELIB}/notify_cli/binary_protocol.pyo
+${PYSITELIB}/notify_cli/notify_client.py
+${PYSITELIB}/notify_cli/notify_client.pyc
+${PYSITELIB}/notify_cli/notify_client.pyo
diff --git a/py-notify-cli/distinfo b/py-notify-cli/distinfo
new file mode 100644
index 0000000000..39a0f32d41
--- /dev/null
+++ b/py-notify-cli/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (notify-cli-0.1.2.tar.gz) = dcc811a1cc17c11cd484e664eb1f2f6c2dbc5b06
+RMD160 (notify-cli-0.1.2.tar.gz) = 396e2af13a57498d74888fe69fcde9230e64e5ee
+SHA512 (notify-cli-0.1.2.tar.gz) = ee01482cd6afd2e15f2d58545f1399bd958e65733020b5c414d4c475bd0bfcac95bd8bbb68534a443a74204d821c1f15ec37edd0abc1c5c60a15ccc3e7712f06
+Size (notify-cli-0.1.2.tar.gz) = 2744 bytes
diff --git a/py-notify-py/DESCR b/py-notify-py/DESCR
new file mode 100644
index 0000000000..f3f174997b
--- /dev/null
+++ b/py-notify-py/DESCR
@@ -0,0 +1 @@
+Cross-platform desktop notification library for Python
diff --git a/py-notify-py/Makefile b/py-notify-py/Makefile
new file mode 100644
index 0000000000..1ea0b39c01
--- /dev/null
+++ b/py-notify-py/Makefile
@@ -0,0 +1,24 @@
+# $NetBSD$
+
+DISTNAME= notify_py-0.2.3
+PKGNAME= ${PYPKGPREFIX}-notify-py-0.2.3
+CATEGORIES= sysutils python
+MASTER_SITES= https://files.pythonhosted.org/packages/dd/e7/d769d2cfd468bc6add04cdd1cc8a15163b3fc2196c5d4b8b6d02cd714751/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/ms7m/notify-py
+COMMENT= Cross-platform desktop notification library for Python
+LICENSE= mit
+
+USE_TOOLS+= bash
+
+DEPENDS+= ${PYPKGPREFIX}-loguru>=0.5.1:../../wip/py-loguru
+
+REPLACE_BASH+= notifypy/os_notifiers/binaries/Notificator.app/Contents/Resources/Scripts/notificator
+
+post-extract:
+ ${CP} ${FILESDIR}/netbsd.py ${WRKSRC}/notifypy/os_notifiers
+
+.include "../../sysutils/libnotify/buildlink3.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-notify-py/PLIST b/py-notify-py/PLIST
new file mode 100644
index 0000000000..c08a02d99b
--- /dev/null
+++ b/py-notify-py/PLIST
@@ -0,0 +1,48 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/notifypy/__init__.py
+${PYSITELIB}/notifypy/__init__.pyc
+${PYSITELIB}/notifypy/__init__.pyo
+${PYSITELIB}/notifypy/example_notification_sound.wav
+${PYSITELIB}/notifypy/exceptions.py
+${PYSITELIB}/notifypy/exceptions.pyc
+${PYSITELIB}/notifypy/exceptions.pyo
+${PYSITELIB}/notifypy/notify.py
+${PYSITELIB}/notifypy/notify.pyc
+${PYSITELIB}/notifypy/notify.pyo
+${PYSITELIB}/notifypy/os_notifiers/__init__.py
+${PYSITELIB}/notifypy/os_notifiers/__init__.pyc
+${PYSITELIB}/notifypy/os_notifiers/__init__.pyo
+${PYSITELIB}/notifypy/os_notifiers/_base.py
+${PYSITELIB}/notifypy/os_notifiers/_base.pyc
+${PYSITELIB}/notifypy/os_notifiers/_base.pyo
+${PYSITELIB}/notifypy/os_notifiers/binaries/Notificator.app/Contents/Info.plist
+${PYSITELIB}/notifypy/os_notifiers/binaries/Notificator.app/Contents/MacOS/applet
+${PYSITELIB}/notifypy/os_notifiers/binaries/Notificator.app/Contents/PkgInfo
+${PYSITELIB}/notifypy/os_notifiers/binaries/Notificator.app/Contents/Resources/Scripts/main.scpt
+${PYSITELIB}/notifypy/os_notifiers/binaries/Notificator.app/Contents/Resources/Scripts/notificator
+${PYSITELIB}/notifypy/os_notifiers/binaries/Notificator.app/Contents/Resources/applet.icns
+${PYSITELIB}/notifypy/os_notifiers/binaries/Notificator.app/Contents/Resources/applet.rsrc
+${PYSITELIB}/notifypy/os_notifiers/linux.py
+${PYSITELIB}/notifypy/os_notifiers/linux.pyc
+${PYSITELIB}/notifypy/os_notifiers/linux.pyo
+${PYSITELIB}/notifypy/os_notifiers/macos.py
+${PYSITELIB}/notifypy/os_notifiers/macos.pyc
+${PYSITELIB}/notifypy/os_notifiers/macos.pyo
+${PYSITELIB}/notifypy/os_notifiers/netbsd.py
+${PYSITELIB}/notifypy/os_notifiers/netbsd.pyc
+${PYSITELIB}/notifypy/os_notifiers/netbsd.pyo
+${PYSITELIB}/notifypy/os_notifiers/windows.py
+${PYSITELIB}/notifypy/os_notifiers/windows.pyc
+${PYSITELIB}/notifypy/os_notifiers/windows.pyo
+${PYSITELIB}/notifypy/py-logo.png
+${PYSITELIB}/tests/__init__.py
+${PYSITELIB}/tests/__init__.pyc
+${PYSITELIB}/tests/__init__.pyo
+${PYSITELIB}/tests/test_notification.py
+${PYSITELIB}/tests/test_notification.pyc
+${PYSITELIB}/tests/test_notification.pyo
diff --git a/py-notify-py/distinfo b/py-notify-py/distinfo
new file mode 100644
index 0000000000..d06e061039
--- /dev/null
+++ b/py-notify-py/distinfo
@@ -0,0 +1,8 @@
+$NetBSD$
+
+SHA1 (notify_py-0.2.3.tar.gz) = 6494991c13e9a2dced220c52873a7d562361d65f
+RMD160 (notify_py-0.2.3.tar.gz) = e1c86bc89ec6c9fea9017a55f6193c70d2dd5f08
+SHA512 (notify_py-0.2.3.tar.gz) = 5d2f1c36f4cbd488f963c605f7e1a07f925ddfae86b9a6ab6fb31e383d71ecb8c41a552997278b5211fc626588275e402358928927eedd48413366d6b549e131
+Size (notify_py-0.2.3.tar.gz) = 644866 bytes
+SHA1 (patch-notifypy_notify.py) = 830bcb7076e46f71c37edb7ee473de12db7802c8
+SHA1 (patch-notifypy_os__notifiers_____init____.py) = f8d677b9797a11fb27992ed0df3834628b3bc2f8
diff --git a/py-notify-py/files/netbsd.py b/py-notify-py/files/netbsd.py
new file mode 100644
index 0000000000..90cc32dcf3
--- /dev/null
+++ b/py-notify-py/files/netbsd.py
@@ -0,0 +1,102 @@
+from loguru import logger
+import subprocess
+import shlex
+
+from ..exceptions import BinaryNotFound, NotificationFailure
+from ._base import BaseNotifier
+
+
+class NetBSDNotifier(BaseNotifier):
+ def __init__(self):
+ """ Main NetBSD Notification Class
+
+ Inspiration by linux.py; using libnotify's tool of notfiy-send. Probably use future as first sysutils/py-dbus sending
+ through dbus.
+
+ """
+ call_find_notify_send = self._find_installed_notify_send()
+
+ if not call_find_notify_send:
+ logger.error("Unable to find notify-send.")
+ raise BinaryNotFound("notify-send")
+ if call_find_notify_send:
+ self._notify_send_binary = call_find_notify_send
+
+ call_find_aplay = self._find_installed_aplay()
+ if not call_find_aplay:
+ # no Aplay is available.
+ self._aplay_binary = False
+ else:
+ self._aplay_binary = call_find_aplay
+
+ @staticmethod
+ def _find_installed_aplay():
+ """ Function to find the path for notify-send """
+ try:
+ run_which_for_aplay = subprocess.check_output(["which", "aplay"])
+ return run_which_for_aplay.decode("utf-8")
+ except subprocess.CalledProcessError:
+ logger.exception("Unable to find aplay.")
+ return False
+ except Exception:
+ logger.exception("Unhandled exception for finding aplay.")
+ return False
+
+ @staticmethod
+ def _find_installed_notify_send():
+ """ Function to find the path for notify-send """
+ try:
+ run_which_for_notify_send = subprocess.check_output(
+ ["which", "notify-send"]
+ )
+ return run_which_for_notify_send.decode("utf-8")
+ except subprocess.CalledProcessError:
+ logger.exception("Unable to find notify-send.")
+ return False
+ except Exception:
+ logger.exception("Unhandled exception for finding notify-send.")
+ return False
+
+ def send_notification(
+ self,
+ notification_title,
+ notification_subtitle,
+ notification_icon,
+ notification_audio,
+ **kwargs,
+ ):
+ try:
+
+ notification_title = " " if notification_title == "" else notification_title
+ notification_subtitle = (
+ " " if notification_subtitle == "" else notification_subtitle
+ )
+
+ generated_command = [
+ self._notify_send_binary.strip(),
+ notification_title,
+ notification_subtitle,
+ ]
+
+ if notification_icon:
+ generated_command.append(f"--icon={shlex.quote(notification_icon)}")
+
+ if notification_audio:
+
+ if self._aplay_binary == False:
+ raise BinaryNotFound("aplay (Alsa)")
+
+ subprocess.Popen(
+ [self._aplay_binary.strip(), notification_audio],
+ stdout=subprocess.DEVNULL,
+ stderr=subprocess.STDOUT,
+ )
+
+ subprocess.check_output(generated_command)
+ return True
+ except subprocess.CalledProcessError:
+ logger.exception("Unable to send notification.")
+ return False
+ except Exception:
+ logger.exception("Unhandled exception for sending notification.")
+ return False
diff --git a/py-notify-py/patches/patch-notifypy_notify.py b/py-notify-py/patches/patch-notifypy_notify.py
new file mode 100644
index 0000000000..bae6e38e55
--- /dev/null
+++ b/py-notify-py/patches/patch-notifypy_notify.py
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- notifypy/notify.py.orig 2020-07-06 01:33:23.000000000 +0000
++++ notifypy/notify.py
+@@ -14,7 +14,7 @@ from .exceptions import (
+ InvalidAudioFormat,
+ )
+
+-from .os_notifiers import LinuxNotifier, MacOSNotifier, WindowsNotifier
++from .os_notifiers import LinuxNotifier, MacOSNotifier, NetBSDNotifier, WindowsNotifier
+
+ from .os_notifiers._base import BaseNotifier
+
+@@ -86,6 +86,8 @@ class Notify:
+ if selected_platform == "Linux":
+
+ return LinuxNotifier
++ elif selected_platform == "NetBSD":
++ return NetBSDNotifier
+ elif selected_platform == "Darwin":
+
+ return MacOSNotifier
diff --git a/py-notify-py/patches/patch-notifypy_os__notifiers_____init____.py b/py-notify-py/patches/patch-notifypy_os__notifiers_____init____.py
new file mode 100644
index 0000000000..f14449225d
--- /dev/null
+++ b/py-notify-py/patches/patch-notifypy_os__notifiers_____init____.py
@@ -0,0 +1,9 @@
+$NetBSD$
+
+--- notifypy/os_notifiers/__init__.py.orig 2020-07-06 01:31:26.000000000 +0000
++++ notifypy/os_notifiers/__init__.py
+@@ -1,3 +1,4 @@
+ from .linux import LinuxNotifier
+ from .macos import MacOSNotifier
++from .netbsd import NetBSDNotifier
+ from .windows import WindowsNotifier
diff --git a/py-pathos/DESCR b/py-pathos/DESCR
new file mode 100644
index 0000000000..3b0fc60968
--- /dev/null
+++ b/py-pathos/DESCR
@@ -0,0 +1,14 @@
+pathos is a framework for heterogeneous computing. It provides a
+consistent high-level interface for configuring and launching parallel
+computations across heterogeneous resources. pathos provides
+configurable launchers for parallel and distributed computing, where each
+launcher contains the syntactic logic to configure and launch jobs in an
+execution environment. Examples of launchers that plug into pathos are:
+a queue-less MPI-based launcher (in pyina), a ssh-based launcher (in
+pathos), and a multi-process launcher (in multiprocess).
+
+pathos provides a consistent interface for parallel and/or distributed
+versions of map and apply for each launcher, thus lowering the
+barrier for users to extend their code to parallel and/or distributed
+resources. The guiding design principle behind pathos is that map
+and apply
diff --git a/py-pathos/Makefile b/py-pathos/Makefile
new file mode 100644
index 0000000000..b0352cf561
--- /dev/null
+++ b/py-pathos/Makefile
@@ -0,0 +1,22 @@
+# $NetBSD$
+
+DISTNAME= pathos-0.2.6
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= devel python
+MASTER_SITES= https://files.pythonhosted.org/packages/be/ea/b2cf3a6561fc5deb64de8ae0af5e3e4e2db03ca588cb7415efce4a8de26e/
+EXTRACT_SUFX= .zip
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://pypi.org/project/pathos
+COMMENT= Parallel graph management and execution in heterogeneous computing
+LICENSE= 2-clause-bsd
+
+DEPENDS+= ${PYPKGPREFIX}-dill>=0.3.2:../../wip/py-dill
+DEPENDS+= ${PYPKGPREFIX}-multiprocess>=0.70.10:../../wip/py-multiprocess
+DEPENDS+= ${PYPKGPREFIX}-ppft>=1.6.6.2:../../wip/py-ppft
+DEPENDS+= ${PYPKGPREFIX}-pox>=0.2.8:../../wip/py-pox
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-pathos/PLIST b/py-pathos/PLIST
new file mode 100644
index 0000000000..a895afd5e1
--- /dev/null
+++ b/py-pathos/PLIST
@@ -0,0 +1,129 @@
+@comment $NetBSD$
+bin/pathos_connect
+bin/portpicker
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/pathos/__init__.py
+${PYSITELIB}/pathos/__init__.pyc
+${PYSITELIB}/pathos/__init__.pyo
+${PYSITELIB}/pathos/__main__.py
+${PYSITELIB}/pathos/__main__.pyc
+${PYSITELIB}/pathos/__main__.pyo
+${PYSITELIB}/pathos/_ppserver_config.py
+${PYSITELIB}/pathos/_ppserver_config.pyc
+${PYSITELIB}/pathos/_ppserver_config.pyo
+${PYSITELIB}/pathos/abstract_launcher.py
+${PYSITELIB}/pathos/abstract_launcher.pyc
+${PYSITELIB}/pathos/abstract_launcher.pyo
+${PYSITELIB}/pathos/connection.py
+${PYSITELIB}/pathos/connection.pyc
+${PYSITELIB}/pathos/connection.pyo
+${PYSITELIB}/pathos/core.py
+${PYSITELIB}/pathos/core.pyc
+${PYSITELIB}/pathos/core.pyo
+${PYSITELIB}/pathos/helpers/__init__.py
+${PYSITELIB}/pathos/helpers/__init__.pyc
+${PYSITELIB}/pathos/helpers/__init__.pyo
+${PYSITELIB}/pathos/helpers/mp_helper.py
+${PYSITELIB}/pathos/helpers/mp_helper.pyc
+${PYSITELIB}/pathos/helpers/mp_helper.pyo
+${PYSITELIB}/pathos/helpers/pp_helper.py
+${PYSITELIB}/pathos/helpers/pp_helper.pyc
+${PYSITELIB}/pathos/helpers/pp_helper.pyo
+${PYSITELIB}/pathos/hosts.py
+${PYSITELIB}/pathos/hosts.pyc
+${PYSITELIB}/pathos/hosts.pyo
+${PYSITELIB}/pathos/info.py
+${PYSITELIB}/pathos/info.pyc
+${PYSITELIB}/pathos/info.pyo
+${PYSITELIB}/pathos/mp_map.py
+${PYSITELIB}/pathos/mp_map.pyc
+${PYSITELIB}/pathos/mp_map.pyo
+${PYSITELIB}/pathos/multiprocessing.py
+${PYSITELIB}/pathos/multiprocessing.pyc
+${PYSITELIB}/pathos/multiprocessing.pyo
+${PYSITELIB}/pathos/parallel.py
+${PYSITELIB}/pathos/parallel.pyc
+${PYSITELIB}/pathos/parallel.pyo
+${PYSITELIB}/pathos/pools.py
+${PYSITELIB}/pathos/pools.pyc
+${PYSITELIB}/pathos/pools.pyo
+${PYSITELIB}/pathos/portpicker.py
+${PYSITELIB}/pathos/portpicker.pyc
+${PYSITELIB}/pathos/portpicker.pyo
+${PYSITELIB}/pathos/pp.py
+${PYSITELIB}/pathos/pp.pyc
+${PYSITELIB}/pathos/pp.pyo
+${PYSITELIB}/pathos/pp_map.py
+${PYSITELIB}/pathos/pp_map.pyc
+${PYSITELIB}/pathos/pp_map.pyo
+${PYSITELIB}/pathos/profile.py
+${PYSITELIB}/pathos/profile.pyc
+${PYSITELIB}/pathos/profile.pyo
+${PYSITELIB}/pathos/python.py
+${PYSITELIB}/pathos/python.pyc
+${PYSITELIB}/pathos/python.pyo
+${PYSITELIB}/pathos/secure/__init__.py
+${PYSITELIB}/pathos/secure/__init__.pyc
+${PYSITELIB}/pathos/secure/__init__.pyo
+${PYSITELIB}/pathos/secure/connection.py
+${PYSITELIB}/pathos/secure/connection.pyc
+${PYSITELIB}/pathos/secure/connection.pyo
+${PYSITELIB}/pathos/secure/copier.py
+${PYSITELIB}/pathos/secure/copier.pyc
+${PYSITELIB}/pathos/secure/copier.pyo
+${PYSITELIB}/pathos/secure/tunnel.py
+${PYSITELIB}/pathos/secure/tunnel.pyc
+${PYSITELIB}/pathos/secure/tunnel.pyo
+${PYSITELIB}/pathos/selector.py
+${PYSITELIB}/pathos/selector.pyc
+${PYSITELIB}/pathos/selector.pyo
+${PYSITELIB}/pathos/serial.py
+${PYSITELIB}/pathos/serial.pyc
+${PYSITELIB}/pathos/serial.pyo
+${PYSITELIB}/pathos/server.py
+${PYSITELIB}/pathos/server.pyc
+${PYSITELIB}/pathos/server.pyo
+${PYSITELIB}/pathos/tests/__init__.py
+${PYSITELIB}/pathos/tests/__init__.pyc
+${PYSITELIB}/pathos/tests/__init__.pyo
+${PYSITELIB}/pathos/tests/__main__.py
+${PYSITELIB}/pathos/tests/__main__.pyc
+${PYSITELIB}/pathos/tests/__main__.pyo
+${PYSITELIB}/pathos/tests/test_decorate.py
+${PYSITELIB}/pathos/tests/test_decorate.pyc
+${PYSITELIB}/pathos/tests/test_decorate.pyo
+${PYSITELIB}/pathos/tests/test_join.py
+${PYSITELIB}/pathos/tests/test_join.pyc
+${PYSITELIB}/pathos/tests/test_join.pyo
+${PYSITELIB}/pathos/tests/test_map.py
+${PYSITELIB}/pathos/tests/test_map.pyc
+${PYSITELIB}/pathos/tests/test_map.pyo
+${PYSITELIB}/pathos/tests/test_mp.py
+${PYSITELIB}/pathos/tests/test_mp.pyc
+${PYSITELIB}/pathos/tests/test_mp.pyo
+${PYSITELIB}/pathos/tests/test_pp.py
+${PYSITELIB}/pathos/tests/test_pp.pyc
+${PYSITELIB}/pathos/tests/test_pp.pyo
+${PYSITELIB}/pathos/tests/test_star.py
+${PYSITELIB}/pathos/tests/test_star.pyc
+${PYSITELIB}/pathos/tests/test_star.pyo
+${PYSITELIB}/pathos/tests/test_with.py
+${PYSITELIB}/pathos/tests/test_with.pyc
+${PYSITELIB}/pathos/tests/test_with.pyo
+${PYSITELIB}/pathos/threading.py
+${PYSITELIB}/pathos/threading.pyc
+${PYSITELIB}/pathos/threading.pyo
+${PYSITELIB}/pathos/util.py
+${PYSITELIB}/pathos/util.pyc
+${PYSITELIB}/pathos/util.pyo
+${PYSITELIB}/pathos/xmlrpc/__init__.py
+${PYSITELIB}/pathos/xmlrpc/__init__.pyc
+${PYSITELIB}/pathos/xmlrpc/__init__.pyo
+${PYSITELIB}/pathos/xmlrpc/server.py
+${PYSITELIB}/pathos/xmlrpc/server.pyc
+${PYSITELIB}/pathos/xmlrpc/server.pyo
diff --git a/py-pathos/distinfo b/py-pathos/distinfo
new file mode 100644
index 0000000000..3591df067d
--- /dev/null
+++ b/py-pathos/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (pathos-0.2.6.zip) = 3368942a49770dcf8306a9d16ee8dab38d5acf2c
+RMD160 (pathos-0.2.6.zip) = c4b03e0b2e477d4c3a29471405ae4d74b3267d8a
+SHA512 (pathos-0.2.6.zip) = 52c8031280ea41e274d04353a8e872614c557b335e48cd8569c997b70246b99c79f43edfa40ff35f424141ba701a81e476ce7bd42cf861b08a07079633b3fe36
+Size (pathos-0.2.6.zip) = 219531 bytes
diff --git a/py-pennyLane-PQ/DESCR b/py-pennyLane-PQ/DESCR
new file mode 100644
index 0000000000..bd5a2f766c
--- /dev/null
+++ b/py-pennyLane-PQ/DESCR
@@ -0,0 +1 @@
+PennyLane plugin for ProjectQ
diff --git a/py-pennyLane-PQ/Makefile b/py-pennyLane-PQ/Makefile
new file mode 100644
index 0000000000..898f0a02f3
--- /dev/null
+++ b/py-pennyLane-PQ/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD$
+
+DISTNAME= PennyLane-PQ-0.8.0
+PKGNAME= ${PYPKGPREFIX}-pennylane-PQ-0.8.0
+CATEGORIES= math python
+MASTER_SITES= https://files.pythonhosted.org/packages/2d/9f/06127feedadb1153f2b4a41e8482cf4588a9d31ede4edba806d38f1a0755/
+
+MAINTAINER= jihbed.research%gmail.com@localhost
+HOMEPAGE= https://github.com/XanaduAI/PennyLane-PQ
+COMMENT= PennyLane plugin for ProjectQ
+LICENSE= apache-2.0
+
+#DEPENDS+= ${PYPKGPREFIX}-projectq>=0.4.1:../../category/py-projectq
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-pennyLane-PQ/PLIST b/py-pennyLane-PQ/PLIST
new file mode 100644
index 0000000000..cedb2a0cf1
--- /dev/null
+++ b/py-pennyLane-PQ/PLIST
@@ -0,0 +1,25 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/pennylane_pq/__init__.py
+${PYSITELIB}/pennylane_pq/__init__.pyc
+${PYSITELIB}/pennylane_pq/__init__.pyo
+${PYSITELIB}/pennylane_pq/_version.py
+${PYSITELIB}/pennylane_pq/_version.pyc
+${PYSITELIB}/pennylane_pq/_version.pyo
+${PYSITELIB}/pennylane_pq/devices.py
+${PYSITELIB}/pennylane_pq/devices.pyc
+${PYSITELIB}/pennylane_pq/devices.pyo
+${PYSITELIB}/pennylane_pq/expval.py
+${PYSITELIB}/pennylane_pq/expval.pyc
+${PYSITELIB}/pennylane_pq/expval.pyo
+${PYSITELIB}/pennylane_pq/ops.py
+${PYSITELIB}/pennylane_pq/ops.pyc
+${PYSITELIB}/pennylane_pq/ops.pyo
+${PYSITELIB}/pennylane_pq/pqops.py
+${PYSITELIB}/pennylane_pq/pqops.pyc
+${PYSITELIB}/pennylane_pq/pqops.pyo
diff --git a/py-pennyLane-PQ/distinfo b/py-pennyLane-PQ/distinfo
new file mode 100644
index 0000000000..92f16f4673
--- /dev/null
+++ b/py-pennyLane-PQ/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (PennyLane-PQ-0.8.0.tar.gz) = 19125a433a2183c9a456b881d35b522ab662db5e
+RMD160 (PennyLane-PQ-0.8.0.tar.gz) = d7a1b7a99b657bb5419bbb3edc5e0837fa37716c
+SHA512 (PennyLane-PQ-0.8.0.tar.gz) = 42ac2f38112bd1f0fee18369338a74a4f70d50975515a4d6932e10cb3fb887ffe2c055a4a2b8bf8f35c1e4c9b1dcbc5fd51b0e05ffb9a7e5a4d59d448c40f0fa
+Size (PennyLane-PQ-0.8.0.tar.gz) = 11858 bytes
diff --git a/py-poisson-approval/DESCR b/py-poisson-approval/DESCR
new file mode 100644
index 0000000000..fc149be9d0
--- /dev/null
+++ b/py-poisson-approval/DESCR
@@ -0,0 +1 @@
+Poisson Approval studies the Poisson Game of Approval Voting
diff --git a/py-poisson-approval/Makefile b/py-poisson-approval/Makefile
new file mode 100644
index 0000000000..6a9e07ed9d
--- /dev/null
+++ b/py-poisson-approval/Makefile
@@ -0,0 +1,27 @@
+# $NetBSD$
+
+VERSION= 0.26.0
+DISTNAME= poisson_approval-0.26.0
+PKGNAME= ${PYPKGPREFIX}-poisson-approval-${VERSION}
+CATEGORIES= math python
+MASTER_SITES= https://files.pythonhosted.org/packages/20/c1/4e996c171f7c7e06258f95b1671096f935a506589ed5ab1d881d6c2304ca/
+
+MAINTAINER= jihbed.research%gmail.com@localhost
+HOMEPAGE= https://github.com/francois-durand/poisson_approval
+COMMENT= Poisson Approval studies the Poisson Game of Approval Voting
+LICENSE= gnu-gpl-v3
+
+BUILD_DEPENDS+= # TODO: pytest-runner>=0
+DEPENDS+= ${PYPKGPREFIX}-scipy>=1.4.1:../../math/py-scipy
+DEPENDS+= ${PYPKGPREFIX}-matplotlib>=3.2.2:../../graphics/py-matplotlib
+DEPENDS+= # TODO: python-ternary>=0
+DEPENDS+= # TODO: shapely>=0
+DEPENDS+= ${PYPKGPREFIX}-sympy>=1.5.1:../../math/py-sympy
+TEST_DEPENDS+= # TODO: pytest>=3
+
+USE_LANGUAGES= # none
+
+BUILDLINK_API_DEPENDS.py-numpy+= ${PYPKGPREFIX}-numpy>=1.0
+.include "../../math/py-numpy/buildlink3.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-poisson-approval/PLIST b/py-poisson-approval/PLIST
new file mode 100644
index 0000000000..cedc172eac
--- /dev/null
+++ b/py-poisson-approval/PLIST
@@ -0,0 +1,370 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/poisson_approval/__init__.py
+${PYSITELIB}/poisson_approval/__init__.pyc
+${PYSITELIB}/poisson_approval/__init__.pyo
+${PYSITELIB}/poisson_approval/best_response/BestResponse.py
+${PYSITELIB}/poisson_approval/best_response/BestResponse.pyc
+${PYSITELIB}/poisson_approval/best_response/BestResponse.pyo
+${PYSITELIB}/poisson_approval/best_response/BestResponseAntiPlurality.py
+${PYSITELIB}/poisson_approval/best_response/BestResponseAntiPlurality.pyc
+${PYSITELIB}/poisson_approval/best_response/BestResponseAntiPlurality.pyo
+${PYSITELIB}/poisson_approval/best_response/BestResponseApproval.py
+${PYSITELIB}/poisson_approval/best_response/BestResponseApproval.pyc
+${PYSITELIB}/poisson_approval/best_response/BestResponseApproval.pyo
+${PYSITELIB}/poisson_approval/best_response/BestResponsePlurality.py
+${PYSITELIB}/poisson_approval/best_response/BestResponsePlurality.pyc
+${PYSITELIB}/poisson_approval/best_response/BestResponsePlurality.pyo
+${PYSITELIB}/poisson_approval/best_response/__init__.py
+${PYSITELIB}/poisson_approval/best_response/__init__.pyc
+${PYSITELIB}/poisson_approval/best_response/__init__.pyo
+${PYSITELIB}/poisson_approval/constants/EquilibriumStatus.py
+${PYSITELIB}/poisson_approval/constants/EquilibriumStatus.pyc
+${PYSITELIB}/poisson_approval/constants/EquilibriumStatus.pyo
+${PYSITELIB}/poisson_approval/constants/Focus.py
+${PYSITELIB}/poisson_approval/constants/Focus.pyc
+${PYSITELIB}/poisson_approval/constants/Focus.pyo
+${PYSITELIB}/poisson_approval/constants/__init__.py
+${PYSITELIB}/poisson_approval/constants/__init__.pyc
+${PYSITELIB}/poisson_approval/constants/__init__.pyo
+${PYSITELIB}/poisson_approval/constants/constants.py
+${PYSITELIB}/poisson_approval/constants/constants.pyc
+${PYSITELIB}/poisson_approval/constants/constants.pyo
+${PYSITELIB}/poisson_approval/containers/AnalyzedStrategies.py
+${PYSITELIB}/poisson_approval/containers/AnalyzedStrategies.pyc
+${PYSITELIB}/poisson_approval/containers/AnalyzedStrategies.pyo
+${PYSITELIB}/poisson_approval/containers/Scores.py
+${PYSITELIB}/poisson_approval/containers/Scores.pyc
+${PYSITELIB}/poisson_approval/containers/Scores.pyo
+${PYSITELIB}/poisson_approval/containers/Winners.py
+${PYSITELIB}/poisson_approval/containers/Winners.pyc
+${PYSITELIB}/poisson_approval/containers/Winners.pyo
+${PYSITELIB}/poisson_approval/containers/__init__.py
+${PYSITELIB}/poisson_approval/containers/__init__.pyc
+${PYSITELIB}/poisson_approval/containers/__init__.pyo
+${PYSITELIB}/poisson_approval/events/Asymptotic.py
+${PYSITELIB}/poisson_approval/events/Asymptotic.pyc
+${PYSITELIB}/poisson_approval/events/Asymptotic.pyo
+${PYSITELIB}/poisson_approval/events/Event.py
+${PYSITELIB}/poisson_approval/events/Event.pyc
+${PYSITELIB}/poisson_approval/events/Event.pyo
+${PYSITELIB}/poisson_approval/events/EventDuo.py
+${PYSITELIB}/poisson_approval/events/EventDuo.pyc
+${PYSITELIB}/poisson_approval/events/EventDuo.pyo
+${PYSITELIB}/poisson_approval/events/EventPivotStrict.py
+${PYSITELIB}/poisson_approval/events/EventPivotStrict.pyc
+${PYSITELIB}/poisson_approval/events/EventPivotStrict.pyo
+${PYSITELIB}/poisson_approval/events/EventPivotTij.py
+${PYSITELIB}/poisson_approval/events/EventPivotTij.pyc
+${PYSITELIB}/poisson_approval/events/EventPivotTij.pyo
+${PYSITELIB}/poisson_approval/events/EventPivotTjk.py
+${PYSITELIB}/poisson_approval/events/EventPivotTjk.pyc
+${PYSITELIB}/poisson_approval/events/EventPivotTjk.pyo
+${PYSITELIB}/poisson_approval/events/EventPivotWeak.py
+${PYSITELIB}/poisson_approval/events/EventPivotWeak.pyc
+${PYSITELIB}/poisson_approval/events/EventPivotWeak.pyo
+${PYSITELIB}/poisson_approval/events/EventTrio.py
+${PYSITELIB}/poisson_approval/events/EventTrio.pyc
+${PYSITELIB}/poisson_approval/events/EventTrio.pyo
+${PYSITELIB}/poisson_approval/events/EventTrio1t.py
+${PYSITELIB}/poisson_approval/events/EventTrio1t.pyc
+${PYSITELIB}/poisson_approval/events/EventTrio1t.pyo
+${PYSITELIB}/poisson_approval/events/EventTrio2t.py
+${PYSITELIB}/poisson_approval/events/EventTrio2t.pyc
+${PYSITELIB}/poisson_approval/events/EventTrio2t.pyo
+${PYSITELIB}/poisson_approval/events/__init__.py
+${PYSITELIB}/poisson_approval/events/__init__.pyc
+${PYSITELIB}/poisson_approval/events/__init__.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableProfileDiscreteGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableProfileDiscreteGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableProfileDiscreteGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableProfileHistogramGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableProfileHistogramGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableProfileHistogramGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableProfileNoisyDiscreteGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableProfileNoisyDiscreteGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableProfileNoisyDiscreteGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableProfileOrdinalGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableProfileOrdinalGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableProfileOrdinalGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableProfileTwelveGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableProfileTwelveGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableProfileTwelveGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableSimplexGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableSimplexGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableSimplexGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyOrdinal.py
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyOrdinal.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyOrdinal.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyThresholdGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyThresholdGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyThresholdGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyTwelve.py
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyTwelve.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableStrategyTwelve.pyo
+${PYSITELIB}/poisson_approval/iterables/IterableTauVectorGrid.py
+${PYSITELIB}/poisson_approval/iterables/IterableTauVectorGrid.pyc
+${PYSITELIB}/poisson_approval/iterables/IterableTauVectorGrid.pyo
+${PYSITELIB}/poisson_approval/iterables/__init__.py
+${PYSITELIB}/poisson_approval/iterables/__init__.pyc
+${PYSITELIB}/poisson_approval/iterables/__init__.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/NiceStatsProfileOrdinal.py
+${PYSITELIB}/poisson_approval/meta_analysis/NiceStatsProfileOrdinal.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/NiceStatsProfileOrdinal.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/__init__.py
+${PYSITELIB}/poisson_approval/meta_analysis/__init__.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/__init__.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/binary_condorcet.py
+${PYSITELIB}/poisson_approval/meta_analysis/binary_condorcet.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/binary_condorcet.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/binary_plots.py
+${PYSITELIB}/poisson_approval/meta_analysis/binary_plots.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/binary_plots.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/binary_shortcuts.py
+${PYSITELIB}/poisson_approval/meta_analysis/binary_shortcuts.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/binary_shortcuts.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/colors.py
+${PYSITELIB}/poisson_approval/meta_analysis/colors.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/colors.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_condorcet.py
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_condorcet.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_condorcet.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_plots.py
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_plots.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_plots.pyo
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_shortcuts.py
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_shortcuts.pyc
+${PYSITELIB}/poisson_approval/meta_analysis/ternary_shortcuts.pyo
+${PYSITELIB}/poisson_approval/profiles/Profile.py
+${PYSITELIB}/poisson_approval/profiles/Profile.pyc
+${PYSITELIB}/poisson_approval/profiles/Profile.pyo
+${PYSITELIB}/poisson_approval/profiles/ProfileCardinal.py
+${PYSITELIB}/poisson_approval/profiles/ProfileCardinal.pyc
+${PYSITELIB}/poisson_approval/profiles/ProfileCardinal.pyo
+${PYSITELIB}/poisson_approval/profiles/ProfileCardinalContinuous.py
+${PYSITELIB}/poisson_approval/profiles/ProfileCardinalContinuous.pyc
+${PYSITELIB}/poisson_approval/profiles/ProfileCardinalContinuous.pyo
+${PYSITELIB}/poisson_approval/profiles/ProfileDiscrete.py
+${PYSITELIB}/poisson_approval/profiles/ProfileDiscrete.pyc
+${PYSITELIB}/poisson_approval/profiles/ProfileDiscrete.pyo
+${PYSITELIB}/poisson_approval/profiles/ProfileHistogram.py
+${PYSITELIB}/poisson_approval/profiles/ProfileHistogram.pyc
+${PYSITELIB}/poisson_approval/profiles/ProfileHistogram.pyo
+${PYSITELIB}/poisson_approval/profiles/ProfileNoisyDiscrete.py
+${PYSITELIB}/poisson_approval/profiles/ProfileNoisyDiscrete.pyc
+${PYSITELIB}/poisson_approval/profiles/ProfileNoisyDiscrete.pyo
+${PYSITELIB}/poisson_approval/profiles/ProfileOrdinal.py
+${PYSITELIB}/poisson_approval/profiles/ProfileOrdinal.pyc
+${PYSITELIB}/poisson_approval/profiles/ProfileOrdinal.pyo
+${PYSITELIB}/poisson_approval/profiles/ProfileTwelve.py
+${PYSITELIB}/poisson_approval/profiles/ProfileTwelve.pyc
+${PYSITELIB}/poisson_approval/profiles/ProfileTwelve.pyo
+${PYSITELIB}/poisson_approval/profiles/__init__.py
+${PYSITELIB}/poisson_approval/profiles/__init__.pyc
+${PYSITELIB}/poisson_approval/profiles/__init__.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandConditional.py
+${PYSITELIB}/poisson_approval/random_factories/RandConditional.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandConditional.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileDiscreteGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileDiscreteGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileDiscreteGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileDiscreteUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileDiscreteUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileDiscreteUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileHistogramGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileHistogramGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileHistogramGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileHistogramUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileHistogramUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileHistogramUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileNoisyDiscreteGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileNoisyDiscreteGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileNoisyDiscreteGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileNoisyDiscreteUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileNoisyDiscreteUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileNoisyDiscreteUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileOrdinalGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileOrdinalGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileOrdinalGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileOrdinalUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileOrdinalUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileOrdinalUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileTwelveGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileTwelveGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileTwelveGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandProfileTwelveUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandProfileTwelveUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandProfileTwelveUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandSimplexGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandSimplexGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandSimplexGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandSimplexUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandSimplexUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandSimplexUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyOrdinalUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyOrdinalUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyOrdinalUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyThresholdGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyThresholdGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyThresholdGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyThresholdUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyThresholdUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyThresholdUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyTwelveUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyTwelveUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandStrategyTwelveUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandTauVectorGridUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandTauVectorGridUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandTauVectorGridUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/RandTauVectorUniform.py
+${PYSITELIB}/poisson_approval/random_factories/RandTauVectorUniform.pyc
+${PYSITELIB}/poisson_approval/random_factories/RandTauVectorUniform.pyo
+${PYSITELIB}/poisson_approval/random_factories/__init__.py
+${PYSITELIB}/poisson_approval/random_factories/__init__.pyc
+${PYSITELIB}/poisson_approval/random_factories/__init__.pyo
+${PYSITELIB}/poisson_approval/strategies/Strategy.py
+${PYSITELIB}/poisson_approval/strategies/Strategy.pyc
+${PYSITELIB}/poisson_approval/strategies/Strategy.pyo
+${PYSITELIB}/poisson_approval/strategies/StrategyOrdinal.py
+${PYSITELIB}/poisson_approval/strategies/StrategyOrdinal.pyc
+${PYSITELIB}/poisson_approval/strategies/StrategyOrdinal.pyo
+${PYSITELIB}/poisson_approval/strategies/StrategyThreshold.py
+${PYSITELIB}/poisson_approval/strategies/StrategyThreshold.pyc
+${PYSITELIB}/poisson_approval/strategies/StrategyThreshold.pyo
+${PYSITELIB}/poisson_approval/strategies/StrategyTwelve.py
+${PYSITELIB}/poisson_approval/strategies/StrategyTwelve.pyc
+${PYSITELIB}/poisson_approval/strategies/StrategyTwelve.pyo
+${PYSITELIB}/poisson_approval/strategies/__init__.py
+${PYSITELIB}/poisson_approval/strategies/__init__.pyc
+${PYSITELIB}/poisson_approval/strategies/__init__.pyo
+${PYSITELIB}/poisson_approval/tau_vector/TauVector.py
+${PYSITELIB}/poisson_approval/tau_vector/TauVector.pyc
+${PYSITELIB}/poisson_approval/tau_vector/TauVector.pyo
+${PYSITELIB}/poisson_approval/tau_vector/__init__.py
+${PYSITELIB}/poisson_approval/tau_vector/__init__.pyc
+${PYSITELIB}/poisson_approval/tau_vector/__init__.pyo
+${PYSITELIB}/poisson_approval/utils/ComputationEngine.py
+${PYSITELIB}/poisson_approval/utils/ComputationEngine.pyc
+${PYSITELIB}/poisson_approval/utils/ComputationEngine.pyo
+${PYSITELIB}/poisson_approval/utils/ComputationEngineNumeric.py
+${PYSITELIB}/poisson_approval/utils/ComputationEngineNumeric.pyc
+${PYSITELIB}/poisson_approval/utils/ComputationEngineNumeric.pyo
+${PYSITELIB}/poisson_approval/utils/ComputationEngineSymbolic.py
+${PYSITELIB}/poisson_approval/utils/ComputationEngineSymbolic.pyc
+${PYSITELIB}/poisson_approval/utils/ComputationEngineSymbolic.pyo
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrder.py
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrder.pyc
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrder.pyo
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrderIgnoringNone.py
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrderIgnoringNone.pyc
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrderIgnoringNone.pyo
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrderIgnoringZeros.py
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrderIgnoringZeros.pyc
+${PYSITELIB}/poisson_approval/utils/DictPrintingInOrderIgnoringZeros.pyo
+${PYSITELIB}/poisson_approval/utils/SetPrintingInOrder.py
+${PYSITELIB}/poisson_approval/utils/SetPrintingInOrder.pyc
+${PYSITELIB}/poisson_approval/utils/SetPrintingInOrder.pyo
+${PYSITELIB}/poisson_approval/utils/Util.py
+${PYSITELIB}/poisson_approval/utils/Util.pyc
+${PYSITELIB}/poisson_approval/utils/Util.pyo
+${PYSITELIB}/poisson_approval/utils/UtilBallots.py
+${PYSITELIB}/poisson_approval/utils/UtilBallots.pyc
+${PYSITELIB}/poisson_approval/utils/UtilBallots.pyo
+${PYSITELIB}/poisson_approval/utils/UtilCache.py
+${PYSITELIB}/poisson_approval/utils/UtilCache.pyc
+${PYSITELIB}/poisson_approval/utils/UtilCache.pyo
+${PYSITELIB}/poisson_approval/utils/UtilMasks.py
+${PYSITELIB}/poisson_approval/utils/UtilMasks.pyc
+${PYSITELIB}/poisson_approval/utils/UtilMasks.pyo
+${PYSITELIB}/poisson_approval/utils/UtilPreferences.py
+${PYSITELIB}/poisson_approval/utils/UtilPreferences.pyc
+${PYSITELIB}/poisson_approval/utils/UtilPreferences.pyo
+${PYSITELIB}/poisson_approval/utils/__init__.py
+${PYSITELIB}/poisson_approval/utils/__init__.pyc
+${PYSITELIB}/poisson_approval/utils/__init__.pyo
+${PYSITELIB}/poisson_approval/utils/computation_engine.py
+${PYSITELIB}/poisson_approval/utils/computation_engine.pyc
+${PYSITELIB}/poisson_approval/utils/computation_engine.pyo
+${PYSITELIB}/tests/__init__.py
+${PYSITELIB}/tests/__init__.pyc
+${PYSITELIB}/tests/__init__.pyo
+${PYSITELIB}/tests/test_asymptotic.py
+${PYSITELIB}/tests/test_asymptotic.pyc
+${PYSITELIB}/tests/test_asymptotic.pyo
+${PYSITELIB}/tests/test_best_response_anti_plurality.py
+${PYSITELIB}/tests/test_best_response_anti_plurality.pyc
+${PYSITELIB}/tests/test_best_response_anti_plurality.pyo
+${PYSITELIB}/tests/test_best_response_approval.py
+${PYSITELIB}/tests/test_best_response_approval.pyc
+${PYSITELIB}/tests/test_best_response_approval.pyo
+${PYSITELIB}/tests/test_best_response_plurality.py
+${PYSITELIB}/tests/test_best_response_plurality.pyc
+${PYSITELIB}/tests/test_best_response_plurality.pyo
+${PYSITELIB}/tests/test_best_responses_to_strategy.py
+${PYSITELIB}/tests/test_best_responses_to_strategy.pyc
+${PYSITELIB}/tests/test_best_responses_to_strategy.pyo
+${PYSITELIB}/tests/test_event_pivot_weak.py
+${PYSITELIB}/tests/test_event_pivot_weak.pyc
+${PYSITELIB}/tests/test_event_pivot_weak.pyo
+${PYSITELIB}/tests/test_event_trio.py
+${PYSITELIB}/tests/test_event_trio.pyc
+${PYSITELIB}/tests/test_event_trio.pyo
+${PYSITELIB}/tests/test_event_trio_1t.py
+${PYSITELIB}/tests/test_event_trio_1t.pyc
+${PYSITELIB}/tests/test_event_trio_1t.pyo
+${PYSITELIB}/tests/test_event_trio_2t.py
+${PYSITELIB}/tests/test_event_trio_2t.pyc
+${PYSITELIB}/tests/test_event_trio_2t.pyo
+${PYSITELIB}/tests/test_nice_stats_profile_ordinal.py
+${PYSITELIB}/tests/test_nice_stats_profile_ordinal.pyc
+${PYSITELIB}/tests/test_nice_stats_profile_ordinal.pyo
+${PYSITELIB}/tests/test_poisson_approval.py
+${PYSITELIB}/tests/test_poisson_approval.pyc
+${PYSITELIB}/tests/test_poisson_approval.pyo
+${PYSITELIB}/tests/test_profile_discrete.py
+${PYSITELIB}/tests/test_profile_discrete.pyc
+${PYSITELIB}/tests/test_profile_discrete.pyo
+${PYSITELIB}/tests/test_profile_histogram.py
+${PYSITELIB}/tests/test_profile_histogram.pyc
+${PYSITELIB}/tests/test_profile_histogram.pyo
+${PYSITELIB}/tests/test_profile_noisy_discrete.py
+${PYSITELIB}/tests/test_profile_noisy_discrete.pyc
+${PYSITELIB}/tests/test_profile_noisy_discrete.pyo
+${PYSITELIB}/tests/test_profile_ordinal.py
+${PYSITELIB}/tests/test_profile_ordinal.pyc
+${PYSITELIB}/tests/test_profile_ordinal.pyo
+${PYSITELIB}/tests/test_profile_twelve.py
+${PYSITELIB}/tests/test_profile_twelve.pyc
+${PYSITELIB}/tests/test_profile_twelve.pyo
+${PYSITELIB}/tests/test_simplex_to_profile.py
+${PYSITELIB}/tests/test_simplex_to_profile.pyc
+${PYSITELIB}/tests/test_simplex_to_profile.pyo
+${PYSITELIB}/tests/test_strategy.py
+${PYSITELIB}/tests/test_strategy.pyc
+${PYSITELIB}/tests/test_strategy.pyo
+${PYSITELIB}/tests/test_strategy_embed_profile.py
+${PYSITELIB}/tests/test_strategy_embed_profile.pyc
+${PYSITELIB}/tests/test_strategy_embed_profile.pyo
+${PYSITELIB}/tests/test_strategy_ordinal.py
+${PYSITELIB}/tests/test_strategy_ordinal.pyc
+${PYSITELIB}/tests/test_strategy_ordinal.pyo
+${PYSITELIB}/tests/test_strategy_threshold.py
+${PYSITELIB}/tests/test_strategy_threshold.pyc
+${PYSITELIB}/tests/test_strategy_threshold.pyo
+${PYSITELIB}/tests/test_strategy_twelve.py
+${PYSITELIB}/tests/test_strategy_twelve.pyc
+${PYSITELIB}/tests/test_strategy_twelve.pyo
+${PYSITELIB}/tests/test_tau.py
+${PYSITELIB}/tests/test_tau.pyc
+${PYSITELIB}/tests/test_tau.pyo
+${PYSITELIB}/tests/test_util_cache.py
+${PYSITELIB}/tests/test_util_cache.pyc
+${PYSITELIB}/tests/test_util_cache.pyo
+${PYSITELIB}/tests/test_xyy_to_profile.py
+${PYSITELIB}/tests/test_xyy_to_profile.pyc
+${PYSITELIB}/tests/test_xyy_to_profile.pyo
diff --git a/py-poisson-approval/distinfo b/py-poisson-approval/distinfo
new file mode 100644
index 0000000000..ffa802f3a2
--- /dev/null
+++ b/py-poisson-approval/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (poisson_approval-0.26.0.tar.gz) = c9a93987af3b6d92e2227a1e70a4e9d9d6931bbb
+RMD160 (poisson_approval-0.26.0.tar.gz) = ca32561651e8f9cf6408efbef2851e3cb87e0d22
+SHA512 (poisson_approval-0.26.0.tar.gz) = e317be49c831563097d8b77581b659b41ec5cff786a85c06c066eaa2b9f0aea8432b31085f3a6de6017b43d31727f9b4ec59631951913bbbb861ba64f7382f30
+Size (poisson_approval-0.26.0.tar.gz) = 151542 bytes
diff --git a/py-pox/DESCR b/py-pox/DESCR
new file mode 100644
index 0000000000..ecfd4cabbf
--- /dev/null
+++ b/py-pox/DESCR
@@ -0,0 +1,9 @@
+pox provides a collection of utilities for navigating and manipulating
+filesystems. This module is designed to facilitate some of the low level
+operating system interactions that are useful when exploring a filesystem
+on a remote host, where queries such as *"what is the root of the filesystem?"*,
+*"what is the user's name?"*, and *"what login shell is preferred?"* become
+essential in allowing a remote user to function as if they were logged in
+locally. While ``pox`` is in the same vein of both the ``os`` and ``shutil``
+builtin modules, the majority of its functionality is unique and compliments
+these two modules.
diff --git a/py-pox/Makefile b/py-pox/Makefile
new file mode 100644
index 0000000000..d741f45b16
--- /dev/null
+++ b/py-pox/Makefile
@@ -0,0 +1,20 @@
+# $NetBSD$
+
+DISTNAME= pox-0.2.8
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= sysutils python
+MASTER_SITES= https://files.pythonhosted.org/packages/1a/0c/ec447fb0ed88bc1c09bf0dadf00e40ea05fda17e841d15bb351a52d9e192/
+EXTRACT_SUFX= .zip
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://pypi.org/project/pox
+COMMENT= Utilities for filesystem exploration and automated builds
+LICENSE= 2-clause-bsd
+
+USE_LANGUAGES= # none
+
+post-extract:
+ ${MV} ${WRKSRC}/scripts/pox ${WRKSRC}/scripts/pox${PYVERSSUFFIX}
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-pox/PLIST b/py-pox/PLIST
new file mode 100644
index 0000000000..d8852554db
--- /dev/null
+++ b/py-pox/PLIST
@@ -0,0 +1,37 @@
+@comment $NetBSD$
+bin/pox${PYVERSSUFFIX}
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/pox/__init__.py
+${PYSITELIB}/pox/__init__.pyc
+${PYSITELIB}/pox/__init__.pyo
+${PYSITELIB}/pox/__main__.py
+${PYSITELIB}/pox/__main__.pyc
+${PYSITELIB}/pox/__main__.pyo
+${PYSITELIB}/pox/_disk.py
+${PYSITELIB}/pox/_disk.pyc
+${PYSITELIB}/pox/_disk.pyo
+${PYSITELIB}/pox/info.py
+${PYSITELIB}/pox/info.pyc
+${PYSITELIB}/pox/info.pyo
+${PYSITELIB}/pox/shutils.py
+${PYSITELIB}/pox/shutils.pyc
+${PYSITELIB}/pox/shutils.pyo
+${PYSITELIB}/pox/tests/__init__.py
+${PYSITELIB}/pox/tests/__init__.pyc
+${PYSITELIB}/pox/tests/__init__.pyo
+${PYSITELIB}/pox/tests/__main__.py
+${PYSITELIB}/pox/tests/__main__.pyc
+${PYSITELIB}/pox/tests/__main__.pyo
+${PYSITELIB}/pox/tests/test_shutils.py
+${PYSITELIB}/pox/tests/test_shutils.pyc
+${PYSITELIB}/pox/tests/test_shutils.pyo
+${PYSITELIB}/pox/tests/test_utils.py
+${PYSITELIB}/pox/tests/test_utils.pyc
+${PYSITELIB}/pox/tests/test_utils.pyo
+${PYSITELIB}/pox/utils.py
+${PYSITELIB}/pox/utils.pyc
+${PYSITELIB}/pox/utils.pyo
diff --git a/py-pox/distinfo b/py-pox/distinfo
new file mode 100644
index 0000000000..8bed977b69
--- /dev/null
+++ b/py-pox/distinfo
@@ -0,0 +1,7 @@
+$NetBSD$
+
+SHA1 (pox-0.2.8.zip) = 5f857b53bde9e7d3229d6cd6bb155555fbc0e746
+RMD160 (pox-0.2.8.zip) = d822edcafabd0b061503c94243b3c2e5fe6d57e2
+SHA512 (pox-0.2.8.zip) = 010668a959cc0a4e2bc73fa6abf2ca90b0a86310c38271b8f15a6f9076a92f26200042922278d464f5d73abbdec3ea0b4728bba36fe491b03f102b0147b692ca
+Size (pox-0.2.8.zip) = 128536 bytes
+SHA1 (patch-setup.py) = a6a51717280ebb0ba4b8a3fe3876a50497a7425c
diff --git a/py-pox/patches/patch-setup.py b/py-pox/patches/patch-setup.py
new file mode 100644
index 0000000000..3f5118af00
--- /dev/null
+++ b/py-pox/patches/patch-setup.py
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- setup.py.orig 2020-06-15 12:24:24.000000000 +0000
++++ setup.py
+@@ -263,7 +263,7 @@ if has_setuptools:
+ # close 'setup' call
+ setup_code += """
+ zip_safe=False,
+- scripts=['scripts/pox'])
++ scripts=['scripts/pox'+sys.version[0:3]])
+ """
+
+ # exec the 'setup' code
diff --git a/py-ppft/DESCR b/py-ppft/DESCR
new file mode 100644
index 0000000000..43c99bddc1
--- /dev/null
+++ b/py-ppft/DESCR
@@ -0,0 +1,6 @@
+Parallel Python module (pp) provides an easy and efficient way to
+create parallel-enabled applications for SMP computers and clusters. pp
+module features cross-platform portability and dynamic load balancing. Thus
+application written with ``pp`` will parallelize efficiently even on
+heterogeneous and multi-platform clusters (including clusters running other
+application with variable CPU loads)
diff --git a/py-ppft/Makefile b/py-ppft/Makefile
new file mode 100644
index 0000000000..a97b425197
--- /dev/null
+++ b/py-ppft/Makefile
@@ -0,0 +1,19 @@
+# $NetBSD$
+
+DISTNAME= ppft-1.6.6.2
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= parallel python
+MASTER_SITES= https://files.pythonhosted.org/packages/2b/fb/fa21f6e9aedc4823448473ed96e8eab64af1cb248c18165f045a90e1c6b4/
+EXTRACT_SUFX= .zip
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://pypi.org/project/ppft
+COMMENT= distributed and parallel python
+LICENSE= modified-bsd
+
+DEPENDS+= ${PYPKGPREFIX}-six>=1.15.0:../../lang/py-six
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-ppft/PLIST b/py-ppft/PLIST
new file mode 100644
index 0000000000..53b61cdd2a
--- /dev/null
+++ b/py-ppft/PLIST
@@ -0,0 +1,83 @@
+@comment $NetBSD$
+bin/ppserver
+${PYSITELIB}/pp/__init__.py
+${PYSITELIB}/pp/__init__.pyc
+${PYSITELIB}/pp/__init__.pyo
+${PYSITELIB}/pp/__main__.py
+${PYSITELIB}/pp/__main__.pyc
+${PYSITELIB}/pp/__main__.pyo
+${PYSITELIB}/pp/_pp.py
+${PYSITELIB}/pp/_pp.pyc
+${PYSITELIB}/pp/_pp.pyo
+${PYSITELIB}/pp/auto.py
+${PYSITELIB}/pp/auto.pyc
+${PYSITELIB}/pp/auto.pyo
+${PYSITELIB}/pp/common.py
+${PYSITELIB}/pp/common.pyc
+${PYSITELIB}/pp/common.pyo
+${PYSITELIB}/pp/transport.py
+${PYSITELIB}/pp/transport.pyc
+${PYSITELIB}/pp/transport.pyo
+${PYSITELIB}/pp/worker.py
+${PYSITELIB}/pp/worker.pyc
+${PYSITELIB}/pp/worker.pyo
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/ppft/__init__.py
+${PYSITELIB}/ppft/__init__.pyc
+${PYSITELIB}/ppft/__init__.pyo
+${PYSITELIB}/ppft/__main__.py
+${PYSITELIB}/ppft/__main__.pyc
+${PYSITELIB}/ppft/__main__.pyo
+${PYSITELIB}/ppft/_pp.py
+${PYSITELIB}/ppft/_pp.pyc
+${PYSITELIB}/ppft/_pp.pyo
+${PYSITELIB}/ppft/auto.py
+${PYSITELIB}/ppft/auto.pyc
+${PYSITELIB}/ppft/auto.pyo
+${PYSITELIB}/ppft/common.py
+${PYSITELIB}/ppft/common.pyc
+${PYSITELIB}/ppft/common.pyo
+${PYSITELIB}/ppft/server/__init__.py
+${PYSITELIB}/ppft/server/__init__.pyc
+${PYSITELIB}/ppft/server/__init__.pyo
+${PYSITELIB}/ppft/server/__main__.py
+${PYSITELIB}/ppft/server/__main__.pyc
+${PYSITELIB}/ppft/server/__main__.pyo
+${PYSITELIB}/ppft/tests/__init__.py
+${PYSITELIB}/ppft/tests/__init__.pyc
+${PYSITELIB}/ppft/tests/__init__.pyo
+${PYSITELIB}/ppft/tests/__main__.py
+${PYSITELIB}/ppft/tests/__main__.pyc
+${PYSITELIB}/ppft/tests/__main__.pyo
+${PYSITELIB}/ppft/tests/auto_diff.py
+${PYSITELIB}/ppft/tests/auto_diff.pyc
+${PYSITELIB}/ppft/tests/auto_diff.pyo
+${PYSITELIB}/ppft/tests/callback.py
+${PYSITELIB}/ppft/tests/callback.pyc
+${PYSITELIB}/ppft/tests/callback.pyo
+${PYSITELIB}/ppft/tests/dynamic_ncpus.py
+${PYSITELIB}/ppft/tests/dynamic_ncpus.pyc
+${PYSITELIB}/ppft/tests/dynamic_ncpus.pyo
+${PYSITELIB}/ppft/tests/quicksort.py
+${PYSITELIB}/ppft/tests/quicksort.pyc
+${PYSITELIB}/ppft/tests/quicksort.pyo
+${PYSITELIB}/ppft/tests/reverse_md5.py
+${PYSITELIB}/ppft/tests/reverse_md5.pyc
+${PYSITELIB}/ppft/tests/reverse_md5.pyo
+${PYSITELIB}/ppft/tests/sum_primes.py
+${PYSITELIB}/ppft/tests/sum_primes.pyc
+${PYSITELIB}/ppft/tests/sum_primes.pyo
+${PYSITELIB}/ppft/tests/sum_primes_functor.py
+${PYSITELIB}/ppft/tests/sum_primes_functor.pyc
+${PYSITELIB}/ppft/tests/sum_primes_functor.pyo
+${PYSITELIB}/ppft/transport.py
+${PYSITELIB}/ppft/transport.pyc
+${PYSITELIB}/ppft/transport.pyo
+${PYSITELIB}/ppft/worker.py
+${PYSITELIB}/ppft/worker.pyc
+${PYSITELIB}/ppft/worker.pyo
diff --git a/py-ppft/distinfo b/py-ppft/distinfo
new file mode 100644
index 0000000000..adbce20b6d
--- /dev/null
+++ b/py-ppft/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (ppft-1.6.6.2.zip) = be2c6629df94022ec2b4950e2a179f625d148cce
+RMD160 (ppft-1.6.6.2.zip) = 712c5964c360f451ec4df019d48cbf2a525653a0
+SHA512 (ppft-1.6.6.2.zip) = ab7f7543c9483e588df78a3c1304fa469ee1f392994ae851afc7da47c943c2c2070157fd003f4d8134981f3322bd2df459411f6a3b3357cbba9776fe75eb640b
+Size (ppft-1.6.6.2.zip) = 106255 bytes
diff --git a/py-ptex/DESCR b/py-ptex/DESCR
new file mode 100644
index 0000000000..37e2b1f7ae
--- /dev/null
+++ b/py-ptex/DESCR
@@ -0,0 +1,2 @@
+PypTeX is the Python Preprocessor for LaTeX. It allows one to embed Python
+code fragments in a LaTeX template file
diff --git a/py-ptex/Makefile b/py-ptex/Makefile
new file mode 100644
index 0000000000..8e7993127a
--- /dev/null
+++ b/py-ptex/Makefile
@@ -0,0 +1,17 @@
+# $NetBSD$
+
+DISTNAME= pyptex-1.0.1
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S/py//}
+CATEGORIES= print python
+MASTER_SITES= https://files.pythonhosted.org/packages/03/a9/69448ed93c993c9752d5d31ce5e8918b13dd0fc685bbe474a3f9b2411a13/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/sloisel/pyptex
+COMMENT= Python Preprocessor for (La)TeX
+LICENSE= mit
+
+DEPENDS+= ${PYPKGPREFIX}-sympy>=1.5.1:../../math/py-sympy
+
+.include "../../math/py-numpy/buildlink3.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-ptex/PLIST b/py-ptex/PLIST
new file mode 100644
index 0000000000..7cb28090a7
--- /dev/null
+++ b/py-ptex/PLIST
@@ -0,0 +1,14 @@
+@comment $NetBSD$
+bin/pyptex
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/pyptex/__init__.py
+${PYSITELIB}/pyptex/__init__.pyc
+${PYSITELIB}/pyptex/__init__.pyo
+${PYSITELIB}/pyptex/__main__.py
+${PYSITELIB}/pyptex/__main__.pyc
+${PYSITELIB}/pyptex/__main__.pyo
diff --git a/py-ptex/distinfo b/py-ptex/distinfo
new file mode 100644
index 0000000000..a4c270ab19
--- /dev/null
+++ b/py-ptex/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (pyptex-1.0.1.tar.gz) = cd2a45d4dfa271659edb8e238925b389b7733b57
+RMD160 (pyptex-1.0.1.tar.gz) = 0094e6029eb1755819661f41c6af41655bc0c732
+SHA512 (pyptex-1.0.1.tar.gz) = 81cefcb6178989cb977c9b678f709a6a51ca3bdfa0a16e31bd6f5bed0079cd31f04c0fbad95b598788fa2ba1415f642893367f3f75ed86a750b21b98a505147f
+Size (pyptex-1.0.1.tar.gz) = 11194 bytes
diff --git a/py-ptyx/DESCR b/py-ptyx/DESCR
new file mode 100644
index 0000000000..4a632d4a9d
--- /dev/null
+++ b/py-ptyx/DESCR
@@ -0,0 +1,6 @@
+pTyX is a LaTeX precompilator, written in Python.
+pTyX enables to generate LaTeX documents, using custom commands or plain
+python code. One single pTyX file may generate many latex documents, with
+different values. I developped and used pTyX to make several different
+versions of a same test in exams,for my student, to discourage cheating.
+Since it uses sympy library, pTyX has symbolic calculus abilities too.
diff --git a/py-ptyx/Makefile b/py-ptyx/Makefile
new file mode 100644
index 0000000000..1ee2d3af2f
--- /dev/null
+++ b/py-ptyx/Makefile
@@ -0,0 +1,21 @@
+# $NetBSD$
+
+DISTNAME= ptyx-20.5
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= print python
+MASTER_SITES= https://files.pythonhosted.org/packages/c0/21/5cc7d642f2972c53978c9217cef1edbdfeec004a054fc9731fcab0fe370c/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/wxgeo/ptyx
+COMMENT= pTyX is a python precompiler for LaTeX
+#LICENSE= # TODO: (see mk/license.mk)
+
+DEPENDS+= ${PYPKGPREFIX}-sympy>=1.5.1:../../math/py-sympy
+DEPENDS+= ${PYPKGPREFIX}-Pillow>=6.2.2:../../graphics/py-Pillow
+
+USE_LANGUAGES= # none
+
+BUILDLINK_API_DEPENDS.py-numpy+= ${PYPKGPREFIX}-numpy>=1.0
+.include "../../math/py-numpy/buildlink3.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-ptyx/PLIST b/py-ptyx/PLIST
new file mode 100644
index 0000000000..4e51fca4d1
--- /dev/null
+++ b/py-ptyx/PLIST
@@ -0,0 +1,75 @@
+@comment $NetBSD$
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/ptyx/__init__.py
+${PYSITELIB}/ptyx/__init__.pyc
+${PYSITELIB}/ptyx/__init__.pyo
+${PYSITELIB}/ptyx/compilation.py
+${PYSITELIB}/ptyx/compilation.pyc
+${PYSITELIB}/ptyx/compilation.pyo
+${PYSITELIB}/ptyx/config.py
+${PYSITELIB}/ptyx/config.pyc
+${PYSITELIB}/ptyx/config.pyo
+${PYSITELIB}/ptyx/context.py
+${PYSITELIB}/ptyx/context.pyc
+${PYSITELIB}/ptyx/context.pyo
+${PYSITELIB}/ptyx/extensions/__init__.py
+${PYSITELIB}/ptyx/extensions/__init__.pyc
+${PYSITELIB}/ptyx/extensions/__init__.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/__init__.py
+${PYSITELIB}/ptyx/extensions/autoqcm/__init__.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/__init__.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/__init__.py
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/__init__.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/__init__.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/generate.py
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/generate.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/generate.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/header.py
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/header.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/compile/header.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/parameters.py
+${PYSITELIB}/ptyx/extensions/autoqcm/parameters.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/parameters.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/__init__.py
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/__init__.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/__init__.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/amend.py
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/amend.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/amend.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/scan_pic.py
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/scan_pic.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/scan_pic.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/script.py
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/script.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/script.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/sendmail.py
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/sendmail.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/sendmail.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/square_detection.py
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/square_detection.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/scan/square_detection.pyo
+${PYSITELIB}/ptyx/extensions/autoqcm/test.py
+${PYSITELIB}/ptyx/extensions/autoqcm/test.pyc
+${PYSITELIB}/ptyx/extensions/autoqcm/test.pyo
+${PYSITELIB}/ptyx/extensions/extended_python/__init__.py
+${PYSITELIB}/ptyx/extensions/extended_python/__init__.pyc
+${PYSITELIB}/ptyx/extensions/extended_python/__init__.pyo
+${PYSITELIB}/ptyx/extensions/questions/__init__.py
+${PYSITELIB}/ptyx/extensions/questions/__init__.pyc
+${PYSITELIB}/ptyx/extensions/questions/__init__.pyo
+${PYSITELIB}/ptyx/latexgenerator.py
+${PYSITELIB}/ptyx/latexgenerator.pyc
+${PYSITELIB}/ptyx/latexgenerator.pyo
+${PYSITELIB}/ptyx/randfunc.py
+${PYSITELIB}/ptyx/randfunc.pyc
+${PYSITELIB}/ptyx/randfunc.pyo
+${PYSITELIB}/ptyx/script.py
+${PYSITELIB}/ptyx/script.pyc
+${PYSITELIB}/ptyx/script.pyo
+${PYSITELIB}/ptyx/utilities.py
+${PYSITELIB}/ptyx/utilities.pyc
+${PYSITELIB}/ptyx/utilities.pyo
diff --git a/py-ptyx/distinfo b/py-ptyx/distinfo
new file mode 100644
index 0000000000..bc09d39e69
--- /dev/null
+++ b/py-ptyx/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (ptyx-20.5.tar.gz) = 589dcfe2663260781c15df1e95f275a7927d0b0a
+RMD160 (ptyx-20.5.tar.gz) = 66afeda7a23f63501369ea31a8a0b75323cf5554
+SHA512 (ptyx-20.5.tar.gz) = 53268269797f91fb513ec0bc0152734af1c4aa3c780f5482153cc88d9ea89f7cddb6a57ee76159b01214cda7e1bc79fd03bc12c62a5a81013af22ecefe9e1312
+Size (ptyx-20.5.tar.gz) = 73314 bytes
diff --git a/py-pytrends/DESCR b/py-pytrends/DESCR
new file mode 100644
index 0000000000..c172759900
--- /dev/null
+++ b/py-pytrends/DESCR
@@ -0,0 +1,5 @@
+Unofficial API for Google Trends
+
+Allows simple interface for automating downloading of reports from Google Trends.
+Only good until Google changes their backend again :-P. When that happens
+feel free to contribute!
diff --git a/py-pytrends/Makefile b/py-pytrends/Makefile
new file mode 100644
index 0000000000..b5c979dc6d
--- /dev/null
+++ b/py-pytrends/Makefile
@@ -0,0 +1,20 @@
+# $NetBSD$
+
+DISTNAME= pytrends-4.7.3
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= net misc python
+MASTER_SITES= https://files.pythonhosted.org/packages/72/13/9e2f2eb64dfd017126fe9522d9dc6023df50b479dc482dad3dd54672ee4b/
+
+MAINTAINER= kamelderouiche%yahoo.com@localhost
+HOMEPAGE= https://github.com/dreyco676/pytrends
+COMMENT= Pseudo API for Google Trends
+LICENSE= apache-2.0
+
+DEPENDS+= ${PYPKGPREFIX}-requests>=0:../../devel/py-requests
+DEPENDS+= ${PYPKGPREFIX}-pandas>=0.25:../../math/py-pandas
+DEPENDS+= ${PYPKGPREFIX}-lxml>=0:../../textproc/py-lxml
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-pytrends/PLIST b/py-pytrends/PLIST
new file mode 100644
index 0000000000..cf8b8836f1
--- /dev/null
+++ b/py-pytrends/PLIST
@@ -0,0 +1,4 @@
+@comment $NetBSD$
+@comment TODO: to fill this file with the file listing:
+@comment TODO: 1. run "/usr/pkg/bin/bmake package"
+@comment TODO: 2. run "/usr/pkg/bin/bmake print-PLIST"
diff --git a/py-pytrends/distinfo b/py-pytrends/distinfo
new file mode 100644
index 0000000000..f32823a886
--- /dev/null
+++ b/py-pytrends/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (pytrends-4.7.3.tar.gz) = 5b6bd07db84fc59a3b300bc5eae58b42feab5b51
+RMD160 (pytrends-4.7.3.tar.gz) = 8087a3b12f7ef2d3ab39a68e8556f5bf0ac14098
+SHA512 (pytrends-4.7.3.tar.gz) = 8e3c620a378452adb6335f299c2f92d77080c2abe434cbdc1e1d5f5746d4ffb49fd1347697ea42451b6f012fa58dcf08504f1acf975f1525e6b511cdb5ce94bc
+Size (pytrends-4.7.3.tar.gz) = 17813 bytes
Home |
Main Index |
Thread Index |
Old Index