~dricottone/huttese-apk

cb4c58b74fe67fe24a8e727552c84e6e7fc395f8 — Drew DeVault 5 years ago 95ab9f8
Normalize py-* packages
32 files changed, 494 insertions(+), 1030 deletions(-)

D sr.ht/libgit2/APKBUILD
D sr.ht/libgit2/handle-crlf-in-parse_header_start.patch
D sr.ht/py-aiosmtpd/APKBUILD
D sr.ht/py-alembic/APKBUILD
D sr.ht/py-ansi2html/APKBUILD
D sr.ht/py-asyncpg/APKBUILD
D sr.ht/py-atpublic/APKBUILD
D sr.ht/py-editor/APKBUILD
D sr.ht/py-misaka/APKBUILD
D sr.ht/py-prometheus-client/APKBUILD
D sr.ht/py-pygments/APKBUILD
D sr.ht/py-pygments/pr-779-python3-in-analyze_text.patch
D sr.ht/py-pygments/pr-815-support-dmesg.patch
D sr.ht/py-pyphen/APKBUILD
D sr.ht/py-pystache/APKBUILD
D sr.ht/py-qrcode/APKBUILD
D sr.ht/py-unidiff/APKBUILD
A sr.ht/py3-aiosmtpd/APKBUILD
A sr.ht/py3-aiosmtpd/test-ssl-certs.patch
A sr.ht/py3-alembic/APKBUILD
A sr.ht/py3-ansi2html/APKBUILD
A sr.ht/py3-asyncpg/APKBUILD
A sr.ht/py3-atpublic/APKBUILD
A sr.ht/py3-editor/APKBUILD
A sr.ht/py3-misaka/APKBUILD
A sr.ht/py3-prometheus-client/APKBUILD
A sr.ht/py3-pyphen/APKBUILD
A sr.ht/py3-pystache/APKBUILD
A sr.ht/py3-qrcode/APKBUILD
A sr.ht/py3-unidiff/APKBUILD
M sr.ht/py3-webencodings/APKBUILD
R sr.ht/{py-webencodings/APKBUILD => py3-webencodings/py-webencodings/APKBUILD}
D sr.ht/libgit2/APKBUILD => sr.ht/libgit2/APKBUILD +0 -66
@@ 1,66 0,0 @@
# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Pierre-Gilas MILLON <pgmillon@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libgit2
pkgver=0.28.1
pkgrel=0
pkgdesc="A linkable library for Git"
url="https://libgit2.org/"
arch="all"
license="GPL-2.0-only-WITH-GCC-exception-2.0"
depends_dev="curl-dev libssh2-dev"
makedepends="$depends_dev python2 cmake zlib-dev openssl-dev"
subpackages="$pkgname-dev $pkgname-tests::noarch"
provides="$pkgname-libs"  # for backward compatibility with v3.4
replaces="$pkgname-libs"  # for backward compatibility with v3.4
source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz
	handle-crlf-in-parse_header_start.patch
	"
options="!check" # FIXME some tests fails
builddir="$srcdir/$pkgname-$pkgver"

# secfixes:
#   0.27.4-r0:
#   - CVE-2018-15501
#   0.27.3-r0:
#   - CVE-2018-10887
#   - CVE-2018-10888
#   0.25.1-r0:
#   - CVE-2016-10128
#   - CVE-2016-10129
#   - CVE-2016-10130
#   0.24.3-r0:
#   - CVE-2016-8568
#   - CVE-2016-8569

build() {
	mkdir -p "$builddir"/build
	cd "$builddir"/build

	cmake .. \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_C_FLAGS="$CFLAGS"
	make
}

check() {
	cd "$builddir"/build
	make test
}

package() {
	cd "$builddir"/build
	make DESTDIR="$pkgdir" install
}

tests() {
	pkgdesc="$pkgdesc (tests)"

	mkdir -p "$subpkgdir"/usr/src/$pkgname/
	cp -a "$builddir"/tests "$subpkgdir"/usr/src/$pkgname/
}

sha512sums="5a1bc5c6af6ad25cb8b2c446e75a774d2a615d4999ec3223d681c7b120d83e7cecd94f1ca549bac0802f5324e27e73cc5a6483ad410636c2f06f098b30b1b647  libgit2-0.28.1.tar.gz
c55455c9548c01cda77641ce4c0b328c9cb8fc1b5b6dd8401b50ee7665034c8382cd651db27272931f169b898de36d1cb1b6d0266369cd63664505d881e25317  handle-crlf-in-parse_header_start.patch"

D sr.ht/libgit2/handle-crlf-in-parse_header_start.patch => sr.ht/libgit2/handle-crlf-in-parse_header_start.patch +0 -57
@@ 1,57 0,0 @@
From 5e88f13eaa8ca30439b496066f6c57e608e18c4e Mon Sep 17 00:00:00 2001
From: Drew DeVault <sir@cmpwn.com>
Date: Fri, 22 Mar 2019 23:56:10 -0400
Subject: [PATCH] patch_parse.c: Handle CRLF in parse_header_start

---
 src/patch_parse.c  |  3 ++-
 tests/diff/parse.c | 25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/patch_parse.c b/src/patch_parse.c
index 647929fd5f..1182f19884 100644
--- a/src/patch_parse.c
+++ b/src/patch_parse.c
@@ -328,7 +328,8 @@ static int parse_header_start(git_patch_parsed *patch, git_patch_parse_ctx *ctx)
 	 * proceeed here. We then hope for the "---" and "+++" lines to fix that
 	 * for us.
 	 */
-	if (!git_parse_ctx_contains(&ctx->parse_ctx, "\n", 1)) {
+	if (!git_parse_ctx_contains(&ctx->parse_ctx, "\n", 1)
+			&& !git_parse_ctx_contains(&ctx->parse_ctx, "\r\n", 2)) {
 		git_parse_advance_chars(&ctx->parse_ctx, ctx->parse_ctx.line_len - 1);
 
 		git__free(patch->header_old_path);
diff --git a/tests/diff/parse.c b/tests/diff/parse.c
index 9cdaa92fbc..927ee90d80 100644
--- a/tests/diff/parse.c
+++ b/tests/diff/parse.c
@@ -359,3 +359,28 @@ void test_diff_parse__lineinfo(void)
 	git_patch_free(patch);
 	git_diff_free(diff);
 }
+
+void test_diff_parse__crlf(void)
+{
+	const char *text = "diff --git a/test-file b/test-file\r\n"
+	"new file mode 100644\r\n"
+	"index 0000000..af431f2 100644\r\n"
+	"--- /dev/null\r\n"
+	"+++ b/test-file\r\n"
+	"@@ -0,0 +1 @@\r\n"
+	"+a contents\r\n";
+
+	git_diff *diff;
+	git_patch *patch;
+	const git_diff_delta *delta;
+
+	cl_git_pass(git_diff_from_buffer(&diff, text, strlen(text)));
+	cl_git_pass(git_patch_from_diff(&patch, diff, 0));
+	delta = git_patch_get_delta(patch);
+
+	cl_assert_equal_s(delta->old_file.path, "test-file");
+	cl_assert_equal_s(delta->new_file.path, "test-file");
+
+	git_patch_free(patch);
+	git_diff_free(diff);
+}

D sr.ht/py-aiosmtpd/APKBUILD => sr.ht/py-aiosmtpd/APKBUILD +0 -44
@@ 1,44 0,0 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-aiosmtpd
_pkgname=aiosmtpd
pkgver=1.1
pkgrel=0
pkgdesc="A reimplementation of the Python stdlib smtpd.py based on asyncio"
url="https://github.com/aio-libs/aiosmtpd"
arch="noarch"
license="Apache-2.0"
depends="py-atpublic"
subpackages="py3-${pkgname#py-}:_py3"
makedepends="python3-dev py-setuptools pytest"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver

build() {
	cd "$builddir"
	python3 setup.py build
}

check() {
	cd "$builddir"
	pytest-3
}

package() {
	mkdir -p "$pkgdir"
}

_py3() {
	cd "$builddir"
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="b61df616f2e14d1da67ac05149543bf48b14a31d44437d9a1dd11b166b98b56220c00e7c55e18d4fd99872d724e23f272922dd3548150632a189d9cb9b652883  aiosmtpd-1.1.tar.gz"

D sr.ht/py-alembic/APKBUILD => sr.ht/py-alembic/APKBUILD +0 -52
@@ 1,52 0,0 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>

pkgname=py-alembic
_pkgname=alembic
pkgver=0.9.6
pkgrel=1
pkgdesc="Lightweight database migration tool for usage with SQLAlchemy"
url="https://bitbucket.org/zzzeek/alembic"
arch="noarch"
license="MIT"
depends="py-mako py-dateutil py-sqlalchemy py-editor"
makedepends="python2-dev python3-dev py-setuptools py-mock pytest"
subpackages="py2-${_pkgname}:_py2 py3-${_pkgname}:_py3"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/${_pkgname}-${pkgver}"

prepare() {
	cp -r "$builddir" "$builddir"-py3
}

check() {
	cd "$builddir"
	python2 setup.py check
	cd "$builddir"-py3
	python3 setup.py check
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	cd "$builddir"
	_py
}

_py3() {
	cd "$builddir"-py3
	_py
}

_py() {
	local pyver="${subpkgname:2:1}"
	local python="python$pyver"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python ${depends//py-/py$pyver-}"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
	mv "$subpkgdir"/usr/bin/alembic "$subpkgdir"/usr/bin/alembic-$pyver
}

sha512sums="f7bc6fa2888056d66b1d3640387b933b4accea6e6062ec089e5ce1353cbaa89ad3c1afac6c06aa52ddd497bdd41f9fdf5d4d860244ed8f339c69c16eb5494c46  alembic-0.9.6.tar.gz"

D sr.ht/py-ansi2html/APKBUILD => sr.ht/py-ansi2html/APKBUILD +0 -61
@@ 1,61 0,0 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py-ansi2html
_pkgname=ansi2html
pkgver=1.5.2
pkgrel=1
pkgdesc="Convert text with ANSI color codes to HTML"
url="http://github.com/ralphbean/ansi2html/"
arch="noarch"
license="LGPL-3.0-or-later"
depends="py-six"
makedepends="python2 python3 py-setuptools"
checkdepends="py2-pytest pytest py-mock py-nose"
source="$pkgname-$pkgver.tar.gz::https://github.com/ralphbean/$_pkgname/archive/$pkgver.tar.gz"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
builddir="$srcdir"/$_pkgname-$pkgver
options="!check" # upstream tests don't work unless module is installed

prepare() {
	cp -r "$builddir" "$builddir"-py3
}

build() {
	cd "$builddir"
	python2 setup.py build
	cd "$builddir"-py3
	python3 setup.py build
}

check() {
	cd "$builddir"
	pytest-2
	cd "$builddir"-py3
	pytest-3
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	cd "$builddir"
	replaces="py-ansi2html"
	_py python2
	rm "$subpkgdir"/usr/bin/ansi2html
}

_py3() {
	cd "$builddir"-py3
	_py python3
}

_py() {
	python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$depends $python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="d386502d755a393a8de2f9c37ac2f1d6cfad1ac5dd3c1e508fe42a72a49762d43546d474e9ad7def5c89b5d7466ae7dceb331c46e2be6cfc4d1f6896a278dce2  py-ansi2html-1.5.2.tar.gz"

D sr.ht/py-asyncpg/APKBUILD => sr.ht/py-asyncpg/APKBUILD +0 -39
@@ 1,39 0,0 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-asyncpg
_pkgname=asyncpg
pkgver=0.18.2
pkgrel=0
pkgdesc="An asyncio PostgreSQL driver"
url="https://github.com/MagicStack/asyncpg"
arch="all"
license="Apache-2.0"
subpackages="py3-${pkgname#py-}:_py3"
makedepends="python3-dev py-setuptools cython cython-dev"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
options="!check" # requires crazy postgres shit

build() {
	cd "$builddir"
	python3 setup.py build
}

package() {
	mkdir -p "$pkgdir"
}

_py3() {
	cd "$builddir"
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="58c2b2c8147743dad756278cb6e808711b4710d2859cea73c040b7864981bb36e20d096022f3e690f62bdf70f28f54c8856b5195809234097575af2061f39d8f  asyncpg-0.18.2.tar.gz"

D sr.ht/py-atpublic/APKBUILD => sr.ht/py-atpublic/APKBUILD +0 -43
@@ 1,43 0,0 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-atpublic
_pkgname=atpublic
pkgver=0.5
pkgrel=0
pkgdesc="@public for populating __all__"
url="https://gitlab.com/warsaw/public"
arch="noarch"
license="Apache-2.0"
subpackages="py3-${pkgname#py-}:_py3"
makedepends="python3-dev py-setuptools pytest"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver

build() {
	cd "$builddir"
	python3 setup.py build
}

check() {
	cd "$builddir"
	pytest-3
}

package() {
	mkdir -p "$pkgdir"
}

_py3() {
	cd "$builddir"
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="6e6fab92d6cf47428b4e2f2617598275a8c61d9d922f6a29c02ce5e9c48e63d1ba6225dd31a23f3c008047d1a9fe11ad8d81e155b76dd09ccd389701c083d16c  atpublic-0.5.tar.gz"

D sr.ht/py-editor/APKBUILD => sr.ht/py-editor/APKBUILD +0 -50
@@ 1,50 0,0 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-editor
_pkgname=editor
pkgver=1.0.3
pkgrel=0
pkgdesc="Programmatically open an editor, capture the result"
url="https://github.com/fmoo/python-editor"
arch="noarch"
license="Apache"
makedepends="python2-dev python3-dev py-setuptools"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
source="${_pkgname}-${pkgver}.tar.gz::https://github.com/fmoo/python-editor/archive/${pkgver}.tar.gz"
builddir="$srcdir/python-${_pkgname}-${pkgver}"
# This dead-simple module has no tests
options="$options !check"

prepare() {
	cp -r "$builddir" "$builddir"-py3
}

check() {
	cd "$builddir"
	python2 setup.py check
	cd "$builddir"-py3
	python3 setup.py check
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	cd "$builddir"
	_py python2
}

_py3() {
	cd "$builddir"-py3
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="0b14462099f8c5a3a7517f0f0cb744470284c34d164483bc58b15ecf4c5484090149d5dcb923b932a41857cfa34d4f10e4238ccc20089804a14631a459b63a39  editor-1.0.3.tar.gz"

D sr.ht/py-misaka/APKBUILD => sr.ht/py-misaka/APKBUILD +0 -55
@@ 1,55 0,0 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-misaka
_pkgname=misaka
pkgver=2.1.1
pkgrel=1
pkgdesc="A Python binding for Hoedown"
url="http://misaka.61924.nl/"
arch="all"
license="MIT"
depends=""
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
makedepends="
	python2-dev python3-dev py-setuptools py-flake8 pytest libffi-dev
"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
options="!check" # I don't have time for this shit

prepare() {
    cd "$builddir"
    sed -e 's/--cov=cssselect2//' -i setup.cfg
	cp -r "$builddir" "$builddir"-py3
}

build() {
	cd "$builddir"
	python2 setup.py build
	cd "$builddir"-py3
	python3 setup.py build
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	cd "$builddir"
	_py python2
}

_py3() {
	cd "$builddir"
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="345cbce4d3b4b7e99e13e32fe4049c6cc27b576685d9d44771a41c486b4fcd8696bd094ab426750ad1841a6d4d1edeee6a60def11559ccf1e3854f2e1bda51d1  misaka-2.1.1.tar.gz"


D sr.ht/py-prometheus-client/APKBUILD => sr.ht/py-prometheus-client/APKBUILD +0 -59
@@ 1,59 0,0 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-prometheus-client
_pkgname=client_python
pkgver=0.5.0
pkgrel=0
pkgdesc="Prometheus instrumentation client for Python"
url="https://github.com/prometheus/client_python"
arch="noarch"
license="Apache-2.0"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
makedepends="
	python2-dev python3-dev py-setuptools pytest py-futures py-twisted
"
source="$pkgname-$pkgver.tar.gz::https://github.com/prometheus/client_python/archive/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver

prepare() {
    cd "$builddir"
	cp -r "$builddir" "$builddir"-py3
}

build() {
	cd "$builddir"
	python2 setup.py build
	cd "$builddir"-py3
	python3 setup.py build
}

check() {
	cd "$builddir"
	pytest-2
	cd "$builddir"-py3
	pytest-3
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	cd "$builddir"
	_py python2
}

_py3() {
	cd "$builddir"
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="6e6e6c0f859b7b9d593e1059b71fde8eed15ccd95e54c245b4e0e8edb748a4761f0929f2d6c06f1c4656eb81f26959c5cec6a58f4d725a587b433ffbb4582127  py-prometheus-client-0.5.0.tar.gz"

D sr.ht/py-pygments/APKBUILD => sr.ht/py-pygments/APKBUILD +0 -90
@@ 1,90 0,0 @@
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
# Maintainer: Matt Smith <mcs@darkregion.net>
pkgname=py-pygments
_pkgname=Pygments
pkgver=2.2.0
pkgrel=2
pkgdesc="A syntax highlighting package written in Python."
url="http://pygments.org/"
arch="noarch"
license="BSD"
depends="py3-${pkgname#py-}"
makedepends="python2-dev python3-dev py-setuptools"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3 $pkgname-doc::noarch"
source="
	https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
	pr-779-python3-in-analyze_text.patch
	pr-815-support-dmesg.patch
"
builddir="$srcdir/$_pkgname-$pkgver"

prepare() {
	default_prepare || return 1

	# Soure files are modified during build with 2to3 tool, so we must build
	# it separately for each Python version.
	local python; for python in python2 python3; do
		cp -r "$builddir" "$builddir-$python" || return 1
	done
}

build() {
	local python; for python in python2 python3; do
		cd "$builddir"-$python
		$python setup.py build || return 1
	done
}

package() {
	mkdir -p "$pkgdir"

	mkdir -p "$pkgdir"/usr/bin
	ln -s pygmentize-3 "$pkgdir"/usr/bin/pygmentize
}

_py2() {
	replaces="$pkgname"
	_py python2
}

_py3() {
	_py python3
}

_py() {
	local python="$1"
	local pyver="${1:6:1}"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"

	cd "$builddir"-$python
	$python setup.py install --prefix=/usr --root="$subpkgdir" || return 1

	local path; for path in "$subpkgdir"/usr/bin/*; do
		mv "$path" "$path-$pyver" || return 1
	done
}

doc() {
	local destdir="$subpkgdir/usr/share/doc/$pkgname"

	cd "$builddir"

	install -m 644 -D doc/pygmentize.1 \
		"$subpkgdir"/usr/share/man/man1/pygmentize.1 || return 1

	mkdir -p "$destdir" || return 1
	cp AUTHORS CHANGES LICENSE TODO "$destdir"/ || return 1

	# Note: The documentation in the doc directory needs to be generated
	# by py-sphinx
	cp -R ./doc/docs/* "$destdir"/ || return 1

	default_doc
}

sha512sums="cc0a4f73e19fa6cbf46314de2e809460c807c631e39ba05cbe5edb5f40db1a687aafcd9715585a0ed45f791710eb6038305e273f282f8682df76f30e63710b29  Pygments-2.2.0.tar.gz
72292d486cd905e68a9f6ee7a717da490a3c187b220b1a24a9ea14f49f588abe9909ff64fab5cc4d58a9756637e033b4a58a53faabeb18b20a08cf4e553dc81d  pr-779-python3-in-analyze_text.patch
295068965bce2ed6e97ce69b984dd1dcd070d9bc09a4bc12f77ca45c6d327c31ec5ebeb573a38ad26a5f977f633b30ae2c23379403a7d7c17e46863e6f1c7311  pr-815-support-dmesg.patch"


D sr.ht/py-pygments/pr-779-python3-in-analyze_text.patch => sr.ht/py-pygments/pr-779-python3-in-analyze_text.patch +0 -19
@@ 1,19 0,0 @@
# HG changeset patch
# User Drew DeVault <sir@cmpwn.com>
# Date 1537640646 14400
# Node ID 6ce1e62557062395358f1934e38bb62078aa13a5
# Parent  7941677dc77d4f2bf0bbd6140ade85a9454b8b80
Support /usr/bin/env python3 in analyze_text

diff --git a/pygments/lexers/python.py b/pygments/lexers/python.py
--- a/pygments/lexers/python.py
+++ b/pygments/lexers/python.py
@@ -238,7 +238,7 @@
     }
 
     def analyse_text(text):
-        return shebang_matches(text, r'pythonw?(2(\.\d)?)?') or \
+        return shebang_matches(text, r'pythonw?(2|3(\.\d)?)?') or \
             'import ' in text[:1000]
 
 

D sr.ht/py-pygments/pr-815-support-dmesg.patch => sr.ht/py-pygments/pr-815-support-dmesg.patch +0 -172
@@ 1,172 0,0 @@
# HG changeset patch
# User martijn@msi.localhost
# Date 1556805935 -7200
# Branch lexer-dmesg
# Node ID 7452fc8eec5e070203326abaeeb1e5de6fa59608
# Parent  6d6b6fc3d439fa1019d9412ef8438dc03c449644
This commit adds a lexer for linux kernel logs as outputted by `dmesg`

It supports output from `dmesg`, in that case it highlights based on
keywords in the line

It can also highlight `dmesg -x` output. In that case it uses the
loglevels from the kernel to highlight the lines.

diff --git a/AUTHORS b/AUTHORS
--- a/AUTHORS
+++ b/AUTHORS
@@ -35,6 +35,7 @@
 * Stéphane Blondon -- SGF lexer
 * Frits van Bommel -- assembler lexers
 * Pierre Bourdon -- bugfixes
+* Martijn Braam -- Kernel log lexer
 * Matthias Bussonnier -- ANSI style handling for terminal-256 formatter
 * chebee7i -- Python traceback lexer improvements
 * Hiram Chirino -- Scaml and Jade lexers
diff --git a/doc/languages.rst b/doc/languages.rst
--- a/doc/languages.rst
+++ b/doc/languages.rst
@@ -120,6 +120,11 @@
 * `Smarty <http://www.smarty.net>`_ templates (PHP templating)
 * Tea
 
+Log files
+---------
+
+* Linux kernel log (dmesg)
+
 Other markup
 ------------
 
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py
--- a/pygments/lexers/_mapping.py
+++ b/pygments/lexers/_mapping.py
@@ -233,6 +233,7 @@
     'JuttleLexer': ('pygments.lexers.javascript', 'Juttle', ('juttle', 'juttle'), ('*.juttle',), ('application/juttle', 'application/x-juttle', 'text/x-juttle', 'text/juttle')),
     'KalLexer': ('pygments.lexers.javascript', 'Kal', ('kal',), ('*.kal',), ('text/kal', 'application/kal')),
     'KconfigLexer': ('pygments.lexers.configs', 'Kconfig', ('kconfig', 'menuconfig', 'linux-config', 'kernel-config'), ('Kconfig', '*Config.in*', 'external.in*', 'standard-modules.in'), ('text/x-kconfig',)),
+    'KernelLogLexer': ('pygments.lexers.log', 'Kernel log', ('kmsg', 'dmesg'), ('*.kmsg', '*.dmesg'), ()),
     'KokaLexer': ('pygments.lexers.haskell', 'Koka', ('koka',), ('*.kk', '*.kki'), ('text/x-koka',)),
     'KotlinLexer': ('pygments.lexers.jvm', 'Kotlin', ('kotlin',), ('*.kt',), ('text/x-kotlin',)),
     'LSLLexer': ('pygments.lexers.scripting', 'LSL', ('lsl',), ('*.lsl',), ('text/x-lsl',)),
diff --git a/pygments/lexers/log.py b/pygments/lexers/log.py
new file mode 100644
--- /dev/null
+++ b/pygments/lexers/log.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.log
+    ~~~~~~~~~~~~~~~~~~~~~
+
+    Lexers for various log file formats.
+
+    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, include
+from pygments.token import *
+
+__all__ = ['KernelLogLexer']
+
+
+class KernelLogLexer(RegexLexer):
+    name = 'Kernel log'
+    aliases = ['kmsg', 'dmesg']
+    filenames = ['*.kmsg', '*.dmesg']
+
+    tokens = {
+        'root': [
+            (r'^(?=\[)', Text, 'unknown'),
+            (r'^([^:]+):debug\s*: (?=\[)', Text, 'debug'),
+            (r'^([^:]+):info\s*: (?=\[)', Text, 'info'),
+            (r'^([^:]+):warn\s*: (?=\[)', Text, 'warn'),
+            (r'^([^:]+):notice\s*: (?=\[)', Text, 'warn'),
+            (r'^([^:]+):err\s*: (?=\[)', Text, 'error'),
+            (r'^([^:]+):crit\s*: (?=\[)', Text, 'error'),
+        ],
+        'unknown': [
+            (r'^(?=.+(warning|notice|audit|deprecated))', Text, 'warn'),
+            (r'^(?=.+(error|critical|fail|Bug))', Text, 'error'),
+            (r'', Text, 'info'),
+        ],
+        'base': [
+            (r'\[[0-9\. ]+\] ', Number),
+            (r'(?<=\] ).+?:', Keyword),
+            (r'\n', Text, '#pop'),
+        ],
+        'debug': [
+            include('base'),
+            (r'.+\n', Text, '#pop')
+        ],
+        'info': [
+            include('base'),
+            (r'.+\n', Text, '#pop')
+        ],
+        'warn': [
+            include('base'),
+            (r'.+', Comment, '#pop')
+        ],
+        'error': [
+            include('base'),
+            (r'.+\n', Generic.Error, '#pop')
+        ]
+    }
diff --git a/tests/examplefiles/example.dmesg b/tests/examplefiles/example.dmesg
new file mode 100644
--- /dev/null
+++ b/tests/examplefiles/example.dmesg
@@ -0,0 +1,52 @@
+[    0.000000] Linux version 5.0.9-arch1-1-ARCH (builduser@heftig-18307) (gcc version 8.3.0 (GCC)) #1 SMP PREEMPT Sat Apr 20 15:00:46 UTC 2019
+[    0.000000] Command line: initrd=\initramfs-linux.img root=/dev/nvme0n1p1 nouveau.noaccel=1 rw
+[    0.000000] KERNEL supported cpus:
+[    0.000000]   Intel GenuineIntel
+[    0.000000]   AMD AuthenticAMD
+[    0.000000]   Hygon HygonGenuine
+[    0.000000]   Centaur CentaurHauls
+[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
+[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
+[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
+[    0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers'
+[    0.000000] x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'
+[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
+[    0.000000] x86/fpu: xstate_offset[3]:  832, xstate_sizes[3]:   64
+[    0.000000] x86/fpu: xstate_offset[4]:  896, xstate_sizes[4]:   64
+[    0.000000] x86/fpu: Enabled xstate features 0x1f, context size is 960 bytes, using 'compacted' format.
+[    2.663456] tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f flags 0x200] vs fed40080 f80
+[    2.663514] tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f flags 0x200] vs fed40080 f80
+[    2.664809] Bluetooth: Core ver 2.22
+[    2.664820] NET: Registered protocol family 31
+[ 3134.452501] usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
+[ 3134.471506] usb 2-2: New USB device found, idVendor=0781, idProduct=cfd2, bcdDevice= 0.02
+[ 3134.471508] usb 2-2: New USB device strings: Mfr=3, Product=4, SerialNumber=2
+
+kern  :notice: [    0.000000] Linux version 5.0.9-arch1-1-ARCH (builduser@heftig-18307) (gcc version 8.3.0 (GCC)) #1 SMP PREEMPT Sat Apr 20 15:00:46 UTC 2019
+kern  :info  : [    0.000000] Command line: initrd=\initramfs-linux.img root=/dev/nvme0n1p1 nouveau.noaccel=1 rw
+kern  :info  : [    0.000000] KERNEL supported cpus:
+kern  :info  : [    0.000000]   Intel GenuineIntel
+kern  :info  : [    0.000000]   AMD AuthenticAMD
+kern  :info  : [    0.000000]   Hygon HygonGenuine
+kern  :info  : [    0.000000]   Centaur CentaurHauls
+kern  :info  : [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
+kern  :info  : [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
+kern  :info  : [    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
+kern  :info  : [    0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers'
+kern  :info  : [    0.000000] x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'
+kern  :info  : [    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
+kern  :info  : [    0.000000] x86/fpu: xstate_offset[3]:  832, xstate_sizes[3]:   64
+kern  :info  : [    0.000000] x86/fpu: xstate_offset[4]:  896, xstate_sizes[4]:   64
+kern  :info  : [    0.000000] x86/fpu: Enabled xstate features 0x1f, context size is 960 bytes, using 'compacted' format.
+kern  :info  : [    0.000000] BIOS-provided physical RAM map:
+kern  :info  : [    0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usable
+kern  :info  : [    2.382262] EXT4-fs (nvme0n1p1): re-mounted. Opts: (null)
+kern  :notice: [    2.389774] random: systemd-random-: uninitialized urandom read (512 bytes read)
+kern  :info  : [    2.397148] usb 1-10: New USB device found, idVendor=8087, idProduct=0aa7, bcdDevice= 0.01
+kern  :info  : [    2.397150] usb 1-10: New USB device strings: Mfr=0, Product=0, SerialNumber=0
+kern  :info  : [    2.519599] usb 1-12: new high-speed USB device number 4 using xhci_hcd
+kern  :crit  : [18706.135478] mce: CPU6: Package temperature above threshold, cpu clock throttled (total events = 79)
+kern  :crit  : [18706.135479] mce: CPU3: Package temperature above threshold, cpu clock throttled (total events = 79)
+kern  :crit  : [18706.135484] mce: CPU4: Package temperature above threshold, cpu clock throttled (total events = 79)
+kern  :info  : [18706.136450] mce: CPU4: Core temperature/speed normal
+kern  :info  : [18706.136451] mce: CPU1: Package temperature/speed normal

D sr.ht/py-pyphen/APKBUILD => sr.ht/py-pyphen/APKBUILD +0 -51
@@ 1,51 0,0 @@
# Contributor: Stefan Wagner <stw@bit-strickerei.de>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-pyphen
_pkgname=Pyphen
pkgver=0.9.5
pkgrel=1
pkgdesc="python-based dictionary hyphenator library"
url="http://www.pyphen.org/"
arch="noarch"
license="GPL-2.0-or-later MPL LGPL-2.0-or-later"
makedepends="python2-dev python3-dev py2-setuptools py3-setuptools"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"

build() {
	cd "$builddir"
	python2 setup.py build
	python3 setup.py build
}

check() {
	cd "$builddir"
	python2 setup.py test
	python3 setup.py test
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	replaces="$pkgname"
	_py python2
}

_py3() {
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$depends $python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"

	cd "$builddir"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="15b9a29517df2b873b5b8d4739d8fa48a09ab199ab9246c7a4fd25c46253a74a18a88fd9484978476b3b1c8d88fed7729382b9dbe4f425724fe54bcd6227de96  Pyphen-0.9.5.tar.gz"

D sr.ht/py-pystache/APKBUILD => sr.ht/py-pystache/APKBUILD +0 -55
@@ 1,55 0,0 @@
# Contributor: Paul Kilar <pkilar@gmail.com>
# Contributor: Stefan Wagner <stw@bit-strickerei.de>
# Maintainer: Paul Kilar <pkilar@gmail.com>
pkgname=py-pystache
_realname=pystache
pkgver=0.5.4
pkgrel=1
pkgdesc="Pystache is a Python implementation of Mustache."
url="https://pypi.python.org/pypi/pystache"
arch="noarch"
license="MIT"
options="!check"
makedepends="python2-dev python3-dev py-setuptools"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
builddir="$srcdir"/$_realname-$pkgver

prepare() {
	default_prepare
	cp -r "$builddir" "$builddir-py3"
}

build() {
	cd "$builddir"
	python2 setup.py build
	cd "$builddir-py3"
	python3 setup.py build
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	replaces="$pkgname"
	depends="${depends//py-/py2-}"
	cd "$builddir"
	_py python2
}

_py3() {
	depends="${depends//py-/py3-}"
	cd "$builddir-py3"
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$depends $python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"

	$python setup.py install --prefix=/usr --root="$subpkgdir"
}
sha512sums="4ac325e1431f58f740218c9ec309821db82d89989ef4ca7fc3536dea0ef1c90e8e85ebaa7df27f33129ca02252b84bcbd7429a1ed999b496f62f174dd66502cb  pystache-0.5.4.tar.gz"

D sr.ht/py-qrcode/APKBUILD => sr.ht/py-qrcode/APKBUILD +0 -52
@@ 1,52 0,0 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-qrcode
_pkgname=qrcode
pkgver=5.3
pkgrel=0
pkgdesc="QR Code image generator"
url="https://github.com/lincolnloop/python-qrcode"
arch="noarch"
license="MIT"
depends="py-pillow py-six"
makedepends="python2-dev python3-dev py-setuptools"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/${_pkgname}-${pkgver}"

prepare() {
	cp -r "$builddir" "$builddir"-py3
}

check() {
	cd "$builddir"
	python2 setup.py check
	cd "$builddir"-py3
	python3 setup.py check
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	cd "$builddir"
	_py python2
}

_py3() {
	cd "$builddir"-py3
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
	# Who cares
	rm -rf "$subpkgdir"/usr/bin
	rm -rf "$subpkgdir"/usr/share
}

sha512sums="325ffb3285a4f01f59b1c708a879d6465ad4c8d066b53a15545f381dbc8de7f0b28b3d7b925bac5367de436ababf1c25c75ddbf37066e17b02d68292edd0ef5e  qrcode-5.3.tar.gz"

D sr.ht/py-unidiff/APKBUILD => sr.ht/py-unidiff/APKBUILD +0 -58
@@ 1,58 0,0 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py-unidiff
_pkgname=unidiff
pkgver=0.5.5
pkgrel=0
pkgdesc="Unified diff python parsing/metadata extraction library"
url="https://pypi.org/project/unidiff/"
arch="noarch"
license="MIT"
subpackages="py2-${pkgname#py-}:_py2 py3-${pkgname#py-}:_py3"
makedepends="
	python2 python3 py-setuptools pytest
"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver

prepare() {
	cp -r "$builddir" "$builddir"-py3
}

build() {
	cd "$builddir"
	python2 setup.py build
	cd "$builddir"-py3
	python3 setup.py build
}

check() {
	cd "$builddir"
	python2 setup.py test
	cd "$builddir"-py3
	python3 setup.py test
}

package() {
	mkdir -p "$pkgdir"
}

_py2() {
	cd "$builddir"
	_py python2
}

_py3() {
	cd "$builddir"
	_py python3
}

_py() {
	local python="$1"
	pkgdesc="$pkgdesc (for $python)"
	depends="$python"
	install_if="$pkgname=$pkgver-r$pkgrel $python"
	$python setup.py install --prefix=/usr --root="$subpkgdir"
}

sha512sums="eaa71dfb6c449f18dd23204070c8afa8185bc64151519e8b85a82978ab51984aafd2e26b948657352f8b0277e7fbfe68c71e0b7cb3fb56cd3e789a77296f5c9e  unidiff-0.5.5.tar.gz"

A sr.ht/py3-aiosmtpd/APKBUILD => sr.ht/py3-aiosmtpd/APKBUILD +35 -0
@@ 0,0 1,35 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-aiosmtpd
_pyname=aiosmtpd
pkgver=1.2
pkgrel=0
pkgdesc="A reimplementation of the Python stdlib smtpd.py based on asyncio"
url="https://github.com/aio-libs/aiosmtpd"
arch="noarch"
license="Apache-2.0"
depends="py3-atpublic"
makedepends="python3-dev py3-setuptools py3-pytest"
_pypiprefix="${_pyname%${_pyname#?}}"
# Remove test-ssl-certs.patch for next version
source="
	https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
	test-ssl-certs.patch
"
replaces="py-aiosmtpd"
builddir="$srcdir"/$_pyname-$pkgver

build() {
	python3 setup.py build
}

check() {
	pytest-3
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="520b0fae80423d3963d4f17ef393cc0ce9e342fd1237c909159706bfe1e13f27df849fbc14aa1c94ad02e7c9108308984b6f9e21c7dbddb09093ef00884983d8  aiosmtpd-1.2.tar.gz
72fb10acd59b2866bd1d8a4dcb6775b0a5b13dc5be1d5286797022e6e5aa2ba7f268af4d26e8a48d3c943b3ecb9df23fac0aad9e0156e3c3f548d5109b3d2f50  test-ssl-certs.patch"

A sr.ht/py3-aiosmtpd/test-ssl-certs.patch => sr.ht/py3-aiosmtpd/test-ssl-certs.patch +121 -0
@@ 0,0 1,121 @@
From f414dcdc0312c4cf3f3d39deb3ea7d15e89a5334 Mon Sep 17 00:00:00 2001
From: Wayne Werner <wayne@waynewerner.com>
Date: Sat, 1 Jun 2019 14:00:30 +0000
Subject: [PATCH] Create new ssl certs

These ones will be valid for 100 years, so that should be plenty of
time for running tests before they have to be recreated.
---
 aiosmtpd/tests/certs/server.crt | 43 +++++++++++++--------------
 aiosmtpd/tests/certs/server.key | 52 ++++++++++++++++-----------------
 2 files changed, 47 insertions(+), 48 deletions(-)

diff --git a/aiosmtpd/tests/certs/server.crt b/aiosmtpd/tests/certs/server.crt
index e4f8f09..04f19cf 100644
--- a/aiosmtpd/tests/certs/server.crt
+++ b/aiosmtpd/tests/certs/server.crt
@@ -1,24 +1,23 @@
 -----BEGIN CERTIFICATE-----
-MIIEEzCCAvugAwIBAgIJANUfzx76nsWrMA0GCSqGSIb3DQEBCwUAMIGfMQswCQYD
-VQQGEwJSVTEZMBcGA1UECAwQU2FpbnQtUGV0ZXJzYnVyZzEZMBcGA1UEBwwQU2Fp
-bnQtUGV0ZXJzYnVyZzETMBEGA1UECgwKSW50ZXJtZWRpYTEQMA4GA1UECwwHRGV2
-VGVhbTEMMAoGA1UEAwwDYWVzMSUwIwYJKoZIhvcNAQkBFhZrdm9sa292QGludGVy
-bWVkaWEubmV0MB4XDTE2MDgyMzEzMDE1NFoXDTE5MDUyMDEzMDE1NFowgZ8xCzAJ
-BgNVBAYTAlJVMRkwFwYDVQQIDBBTYWludC1QZXRlcnNidXJnMRkwFwYDVQQHDBBT
-YWludC1QZXRlcnNidXJnMRMwEQYDVQQKDApJbnRlcm1lZGlhMRAwDgYDVQQLDAdE
-ZXZUZWFtMQwwCgYDVQQDDANhZXMxJTAjBgkqhkiG9w0BCQEWFmt2b2xrb3ZAaW50
-ZXJtZWRpYS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0c3sW
-h3wlBuM21PhiF2AKlYniu697xCv3cvOyqg4ybq+Vd44ldQc+3twIyxtO+p1zgxTW
-bkxwV+s6qBU5i09m8RHX2sBW0e61Vx4dR8dEkGjmqy3hebJy33GZOWh5bp1yZoZp
-9AsbGQ2dNPCBSc75hc/5+CMcyzoK3pXuC09kwXPNmnWgy/dJWk6FVRP3/3u2KkDo
-ZGKDY7+vnJ8hYLk+stGZGfu0C6qU7cguRnsuuH6nC6KIhbn3hJNVYMlXRBXF1tE4
-UBjvdSYlFfyiwc1zJ77TVq8lSnn/9yiBfG+xUqGq7+KEHkg3SezmBFTFaXRc+RT3
-e3wf/e5WJRHl4joxAgMBAAGjUDBOMB0GA1UdDgQWBBSR+2YlBnyuYLHm9xNL/dJw
-fn6RtjAfBgNVHSMEGDAWgBSR+2YlBnyuYLHm9xNL/dJwfn6RtjAMBgNVHRMEBTAD
-AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCJExJ/YpMJeWq/VsEBiQ9MevNUbhy4bDn1
-8JkDazIAwcSALkqG+VKFp5JBJxS8BIMJ//31L26r0pjT8eOCivyEAf5jtBt594Jn
-v+IANbVXfGds3H0QtFgpMKDlvpwfYDXwNDRsClLhwgIzhkrtl0y1vIn6gNx2Np0p
-Xn4nRewPXpNfUXuE4mot0njMOp2Iyf0AuhaM9rqqK9TEwZCvpwpptjnBg0Z+vd+h
-U4rQNt6WaRMkYc1xZpOy6pESB98JkmTFJ6se33JLc7GXJbdLcQ+Zy6TWCGhUqZ/U
-kaKttZGpHTZfuMkwRwhPG6ou3SlvlARYN3wGTMy+Um9tk+J+k0Tw
+MIID6DCCAtCgAwIBAgIJAOT/DNOqIMqmMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYD
+VQQGEwJVUzELMAkGA1UECAwCQVIxEjAQBgNVBAcMCUdyZWVud29vZDERMA8GA1UE
+CgwIQWlvc210cGQxEDAOBgNVBAsMB0RldlRlYW0xDDAKBgNVBAMMA2FlczEkMCIG
+CSqGSIb3DQEJARYVd2F5bmVAd2F5bmV3ZXJuZXIuY29tMCAXDTE5MDYwMTEzNTUy
+NloYDzIxMTkwNTA4MTM1NTI2WjCBhzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkFS
+MRIwEAYDVQQHDAlHcmVlbndvb2QxETAPBgNVBAoMCEFpb3NtdHBkMRAwDgYDVQQL
+DAdEZXZUZWFtMQwwCgYDVQQDDANhZXMxJDAiBgkqhkiG9w0BCQEWFXdheW5lQHdh
+eW5ld2VybmVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMXp
+glx/G19+jt/m/AQAy4+85ng3L1/PsXri91SpvPz1YD7Z3/0Yz3SFyuP1mkRCTplO
+H3Ok1BVbnycHxBDLBkbEjoJOfzMWxsV1Xp1vE4XEVQaq111pjgxQoFD1qU9vOs4c
+0g54PSTtGio0WCOcJq1fWXz9T1QqM5n4MAL2KzFNkqfyyhCesoja4qnPn9n8MCjk
+TFslwX/2xJVXrsZyGH0IwiGmJDzkW3/FgXj0brcRZe4BYx/BM7ka1LDNnrdUQ7Wj
+GuYbC7mQLWzOUJBF+UQUWHbPadCEPYpAgd4J4seME2XUW/ygi95oY6mJcZGOyz0c
+c8D/Dja8Elt5DeTYypsCAwEAAaNTMFEwHQYDVR0OBBYEFDofuwFE+DEx8uQisFlQ
+Dfn4LIqdMB8GA1UdIwQYMBaAFDofuwFE+DEx8uQisFlQDfn4LIqdMA8GA1UdEwEB
+/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKdtV5GiiE66bZyqh7aKAOJb6dAe
+qAD8LH9u2hqili7fHNzRQLppSiNGGxy/yZoqh7+I3Z64km5jEiSiw2bY7vqbhReC
+qU57Dlf5Q4PQVSe36d+2T/g0oGq1pzJkfY27Pse+e9c/m4FkKeEltdqS8Tl2WJFI
+Qfux88wBnfrZWCgCvZFQGD6RaqEx9Z2//cUOmU+FcM+JHfbfnQy2QEY13CKQfniP
+YBprCg866+ecVC+J+Aeu9ubZgv557SJwJ/0b4rsQ/ETUw95g6AxqdHntDTrWamxQ
+iKiGHt3N9iEdnnjXsKYNMsOFXSHHG10PtBQUpNOSUrp5HMb1Kd0oTdNz/kU=
 -----END CERTIFICATE-----
diff --git a/aiosmtpd/tests/certs/server.key b/aiosmtpd/tests/certs/server.key
index f9e279b..f22e0f5 100644
--- a/aiosmtpd/tests/certs/server.key
+++ b/aiosmtpd/tests/certs/server.key
@@ -1,28 +1,28 @@
 -----BEGIN PRIVATE KEY-----
-MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC0c3sWh3wlBuM2
-1PhiF2AKlYniu697xCv3cvOyqg4ybq+Vd44ldQc+3twIyxtO+p1zgxTWbkxwV+s6
-qBU5i09m8RHX2sBW0e61Vx4dR8dEkGjmqy3hebJy33GZOWh5bp1yZoZp9AsbGQ2d
-NPCBSc75hc/5+CMcyzoK3pXuC09kwXPNmnWgy/dJWk6FVRP3/3u2KkDoZGKDY7+v
-nJ8hYLk+stGZGfu0C6qU7cguRnsuuH6nC6KIhbn3hJNVYMlXRBXF1tE4UBjvdSYl
-Ffyiwc1zJ77TVq8lSnn/9yiBfG+xUqGq7+KEHkg3SezmBFTFaXRc+RT3e3wf/e5W
-JRHl4joxAgMBAAECggEAFLHZv++x0R1FGZi7E6TSouQbeCFGMs+Aq1RHloniLu56
-vI2Fg840EoXEfk2syBX90K2LyjvEEG5Ez+lO5daQOKIVBchUnqBc2/ctwPXmaHqX
-TTz8egtW582wXX4z+RkyfVg8uhH+5BCvewQDQRCR6BPskiJfBIJaGb0FPNOXO1qy
-vI0MupbfHU1J80M6PEzfszswdC+5Lgx0kFRphr8mSLn42dlFsqFVmFCVuaxg6bfn
-zowXppUcUM4lkBrsXpLKYTr2+u64wZkclL/GjMCYuyQ52xiBsw3JPDeDDFI3kFkw
-gOCqDedqyim60qM9Dtq1bf4EW4/AEZp5LM7bSOXTsQKBgQDtuUynfJyKsqdXCrAa
-Z+uVhSlAN7a4/n4s0wFomgXmQnYNaNAq5PF8Nplq95JiGkD6BX/FPKPUxHwpeT3F
-F98h03BafU/06RR/m3A8ACclTVM5vmqv3I+L2eqAPVP+mE5pPrQwMxhxwhcHrbtg
-LmUVegkahRZgR8WhrhRyQ6fL0wKBgQDCUvubeKtY09u6j1AuTgfGCNmjqFyNHsuZ
-PQhqmiIcsmKWja2ybiFk8hQf09scjQOGC9GunD1aB8KTnBYOr/WcNLRjLuKWL3WO
-xKDfIrOJ6StooU6+/hYz+RBcYn87d4sSVzZIgTPdN1OyQKls9QhP4Ds9j4wWNmnM
-EWEjzCczawKBgQCcNP6hr8hNe0dqcqN1NoQfI/kPMYzn0pKmcaCjU1I9E77u4Mio
-5venX1lAaJ3PyOCZabOjr00YKmRL/FcSg7UjTQSu8Vjw3ZeSolkFlDQk1sKxVuZT
-2OKaSv9EdQgUa5Bap9FPOsP9PERVz1sowFO74QzKWFlzurWqn/DfhIVl8QKBgEmN
-a1rvk7uthQ/aSvkb4+lbVDWT9mQb8ehwp4ziBmNiSdq+ia5t7QnubxuU7uyhm2HT
-e2xiCv7WzRleDSNGCuszL8wS5QT/tblyR4nt8pMSxLF3zPyR5AmMDltJlOsHVoZ8
-qDlNXjovROjFfNuW66yALSwh9144/laVhXUtQvE9AoGBANvLJfJ7b3QxvQduFfRB
-667/l4/2zkVvPkKABgf+v+/GH+oQq4K3ZX+LZDQb1PcliaUNtE1l3maQNUTa1iar
-WMYYYhs05mnIWCYu9H8Dd1LzpNmZVqTK6cJSTrbOAkStopf95l0QGUxG+hIbewmh
-HJa7IfPvASHjtu/R/HZr/n5W
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDF6YJcfxtffo7f
+5vwEAMuPvOZ4Ny9fz7F64vdUqbz89WA+2d/9GM90hcrj9ZpEQk6ZTh9zpNQVW58n
+B8QQywZGxI6CTn8zFsbFdV6dbxOFxFUGqtddaY4MUKBQ9alPbzrOHNIOeD0k7Roq
+NFgjnCatX1l8/U9UKjOZ+DAC9isxTZKn8soQnrKI2uKpz5/Z/DAo5ExbJcF/9sSV
+V67Gchh9CMIhpiQ85Ft/xYF49G63EWXuAWMfwTO5GtSwzZ63VEO1oxrmGwu5kC1s
+zlCQRflEFFh2z2nQhD2KQIHeCeLHjBNl1Fv8oIveaGOpiXGRjss9HHPA/w42vBJb
+eQ3k2MqbAgMBAAECggEBAMLwy8giJys7tK2Ujn2+7sMpNPYKnW5JXK8HasmI269q
+Xp/p6XgafRVwR7WckJRVn6ffzJkTLRfQhIZkXtqPsCH6r8hoW2BOOgH7JvP5mggz
+p/CGTNYlB5bXv+Ge6GNm00x8FOfNxaReq1wQ7RQ+VdaFydaUiBQF8YficCAqq8bF
+v2q/5XBydcJ4N2fyI4Mm3g03NIiXjeCNbxU5MBTwx2W6xN+PitN/KPGrC/KQoQEt
+PibnBkojBFfty8FTjISX/7ZKaQBp3UEktccru0k1V2LpOJ+aQMfPLGSgMdyx8hei
+oQbwv97dQfTjMaC3z53ae2sbfOyFmurWcV8Yhlo1uQECgYEA528s2Gsybcg1NQYo
+63Z7UYNd4PWOIHVuaf6XX06e0zUncaY0yf5sb0W1VTrXJ6VdgRT1Et9kkgYKZ2I7
+zsLnJQQiB0Xk7K+kha9WRgmtsxqsks9E61S/K+Ao0hNBeegwn8G6tu8KQlFDKVF0
+LN/SU/Q9J2/CVeaMDK8fugs3yoECgYEA2utto2CJ3TALc451yhqYiVHMq2WLW3M0
++ctrRqTQJ/vgTgCXNDNZPPY+xY83Hbcaw4XxBUI9idNyorqUP3Z05kKEyZUSe4YK
+SnRi5+m/YLghNCX/MDAQasmCvV8I3ZXvzqP0TuAQW3XETqs3Cwy5wJfGXYxkVf41
+4fe0ypvo7xsCgYA+C744HzUb3Yr2NjqONeuFxPRMNUjvRsxdOlYWxRsrgJqci3Sn
+msAzbLraqLW5+UmCK74wWxe5Vkk/wkRKgFI7yEnfLUvccJJpDMLScBHTbJlLmqnd
+dZDzEFuhRmxNZIR0sBmApcFYWjTpRN8ikLbwrxAeHIY7RV3SoLiexhclAQKBgAD4
+2KTIEfSkePiLYmSCV7kMXu9H5SWDznFpgNFwe+ghiy5tfD5kF/pYUZEJAMKmBH1n
+w9k1IRbSlIi6cVwSx5QaKYLHoaxgvPz1pVbIR+xDBQq5PHfXTstal7UFjgGF3+m3
++qa7AfeV/0gmJHltFgoP4naZ3/wtw8l8ExZvOMqPAoGBAMG9pMCCY653KfRQ237I
+m/ds9b3VmaLZ5wAwoAEeU/kfwVa27GlP6uDwz6xJmn3XLQ29YwWx8hgqIBm5TfBU
+EYQE2RNEcTOY5fnT7QK+xrKyvr3o8fTxCV15EzX/Nwc723QCO8mXN/8ekAhBRHQ7
+6QRoqSt0NeWpSSVRTNwYwFrL
 -----END PRIVATE KEY-----

A sr.ht/py3-alembic/APKBUILD => sr.ht/py3-alembic/APKBUILD +29 -0
@@ 0,0 1,29 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-alembic
_pyname=alembic
pkgver=1.0.10
pkgrel=0
pkgdesc="Lightweight database migration tool for usage with SQLAlchemy"
url="https://bitbucket.org/zzzeek/alembic"
arch="noarch"
license="MIT"
depends="py3-mako py3-dateutil py3-sqlalchemy py3-editor"
makedepends="python3-dev py3-setuptools py3-mock py3-pytest"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-alembic py2-alembic"
builddir="$srcdir/${_pyname}-${pkgver}"

build() {
	python3 setup.py build
}

check() {
	python3 setup.py check
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="78cec44ae1b5e6958f629488cf615ada5853db420aee8b3febcffb9f89a0f79137aca7bbcc2eefd4ce6a29f96e989158994d6aa5772582f9d02e91dd7c46d67d  alembic-1.0.10.tar.gz"

A sr.ht/py3-ansi2html/APKBUILD => sr.ht/py3-ansi2html/APKBUILD +31 -0
@@ 0,0 1,31 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-ansi2html
_pyname=ansi2html
pkgver=1.5.2
pkgrel=2
pkgdesc="Convert text with ANSI color codes to HTML"
url="http://github.com/ralphbean/ansi2html/"
arch="noarch"
license="LGPL-3.0-or-later"
depends="py3-six"
makedepends="py3-setuptools"
checkdepends="py3-pytest py3-mock py3-nose"
replaces="py-ansi2html py2-ansi2html"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver

build() {
	python3 setup.py build
}

check() {
	PYTHONPATH="$(pwd)" pytest-3
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="163d5784d04e6eea0847676b967051382fa74a354c19462d1b73980fd1b0a7eb45ce1f1bd88cca803356e7767ccab1bbce6de4152c98aec98534f4ed7d65a83f  ansi2html-1.5.2.tar.gz"

A sr.ht/py3-asyncpg/APKBUILD => sr.ht/py3-asyncpg/APKBUILD +37 -0
@@ 0,0 1,37 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-asyncpg
_pyname=asyncpg
pkgver=0.18.3
pkgrel=0
pkgdesc="An asyncio PostgreSQL driver"
url="https://github.com/MagicStack/asyncpg"
arch="all"
license="Apache-2.0"
makedepends="python3-dev py3-setuptools cython cython-dev"
checkdepends="postgresql postgresql-contrib postgresql-dev"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-asyncpg"
builddir="$srcdir"/$_pyname-$pkgver

build() {
	python3 setup.py build
}

check() {
	# https://github.com/MagicStack/asyncpg/pull/399
	# Fixed in next version
	cat >.flake8 <<-EOF
	[flake8]
	ignore = E402,E731
	exclude = .git,__pycache__,build,dist,.eggs,.github,.local
	EOF
	python3 setup.py test
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="695774aca0847a1ab2bc1a4ec052a6c241aac127ff8fd9d013f95483e93512320458e60eb8d6e9b3d5a4f8e7b0975251a5cafb8d96ba5efcf8f9042d82b235b6  asyncpg-0.18.3.tar.gz"

A sr.ht/py3-atpublic/APKBUILD => sr.ht/py3-atpublic/APKBUILD +29 -0
@@ 0,0 1,29 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-atpublic
_pyname=atpublic
pkgver=1.0
pkgrel=0
pkgdesc="@public for populating __all__"
url="https://gitlab.com/warsaw/public"
arch="noarch"
license="Apache-2.0"
makedepends="python3-dev py3-setuptools py3-pytest"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-atpublic"
builddir="$srcdir"/$_pyname-$pkgver

build() {
	python3 setup.py build
}

check() {
	pytest-3
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="f9e6f7bbbe12d86df5bc849c432e789fb55c6d19b9d6b3fb2462ea38aa8ad6602504a30a95ec14e001f62709ae5e11ae29258b9cb7a71eaa48879f9cb0cb19d8  atpublic-1.0.tar.gz"

A sr.ht/py3-editor/APKBUILD => sr.ht/py3-editor/APKBUILD +26 -0
@@ 0,0 1,26 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-editor
_pyname=python-editor
pkgver=1.0.4
pkgrel=0
pkgdesc="Programmatically open an editor, capture the result"
url="https://github.com/fmoo/python-editor"
arch="noarch"
license="Apache"
makedepends="python3-dev py3-setuptools py3-six"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-editor"
builddir="$srcdir/${_pyname}-${pkgver}"
# This package is very simple and has no tests
options="$options !check"

build() {
	python3 setup.py build
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="c8ce2403bfe6c93935c7f4c384a8618a39cdaefe1ff5b1ff2cf4562866d8b3caa616e428c0a1634a56db934caeb474e7f84f8d5e009b9ed664189fdece8146f6  python-editor-1.0.4.tar.gz"

A sr.ht/py3-misaka/APKBUILD => sr.ht/py3-misaka/APKBUILD +34 -0
@@ 0,0 1,34 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-misaka
_pyname=misaka
pkgver=2.1.1
pkgrel=2
pkgdesc="A Python binding for Hoedown"
url="http://misaka.61924.nl/"
arch="all"
license="MIT"
makedepends="python3-dev py3-setuptools py3-flake8 py3-pytest libffi-dev"
replaces="py-misaka"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver
options="!check" # upstream test suite is very broken

prepare() {
    sed -e 's/--cov=cssselect2//' -i setup.cfg
}

build() {
	python3 setup.py build
}

check() {
	python3 setup.py test
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}


sha512sums="345cbce4d3b4b7e99e13e32fe4049c6cc27b576685d9d44771a41c486b4fcd8696bd094ab426750ad1841a6d4d1edeee6a60def11559ccf1e3854f2e1bda51d1  misaka-2.1.1.tar.gz"

A sr.ht/py3-prometheus-client/APKBUILD => sr.ht/py3-prometheus-client/APKBUILD +27 -0
@@ 0,0 1,27 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-prometheus-client
_pyname=prometheus_client
pkgver=0.7.1
pkgrel=0
pkgdesc="Prometheus instrumentation client for Python"
url="https://github.com/prometheus/client_python"
arch="noarch"
license="Apache-2.0"
depends="py3-twisted"
makedepends="python3-dev py3-setuptools"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-prometheus-client py2-prometheus-client"
builddir="$srcdir"/$_pyname-$pkgver
options="!check" # no upstream tests

build() {
	python3 setup.py build
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="cd7e7471c7c6d90681ce54ba41bd9fb94f58b799a63f1fca1987f8a59442ee2321d1d7157a0713f29ac32a49f64bae1e8d97ffc8b1e96e304448ae23cb0eb7de  prometheus_client-0.7.1.tar.gz"

A sr.ht/py3-pyphen/APKBUILD => sr.ht/py3-pyphen/APKBUILD +29 -0
@@ 0,0 1,29 @@
# Contributor: Stefan Wagner <stw@bit-strickerei.de>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-pyphen
_pyname=Pyphen
pkgver=0.9.5
pkgrel=2
pkgdesc="python-based dictionary hyphenator library"
url="http://www.pyphen.org/"
arch="noarch"
license="GPL-2.0-or-later MPL LGPL-2.0-or-later"
makedepends="python3-dev py3-setuptools"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-pyphen py2-pyphen"
builddir="$srcdir/$_pyname-$pkgver"

build() {
	python3 setup.py build
}

check() {
	python3 setup.py test
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="15b9a29517df2b873b5b8d4739d8fa48a09ab199ab9246c7a4fd25c46253a74a18a88fd9484978476b3b1c8d88fed7729382b9dbe4f425724fe54bcd6227de96  Pyphen-0.9.5.tar.gz"

A sr.ht/py3-pystache/APKBUILD => sr.ht/py3-pystache/APKBUILD +27 -0
@@ 0,0 1,27 @@
# Contributor: Paul Kilar <pkilar@gmail.com>
# Contributor: Stefan Wagner <stw@bit-strickerei.de>
# Maintainer: Paul Kilar <pkilar@gmail.com>
pkgname=py3-pystache
_pyname=pystache
pkgver=0.5.4
pkgrel=2
pkgdesc="Pystache is a Python implementation of Mustache."
url="https://pypi.python.org/pypi/pystache"
arch="noarch"
license="MIT"
makedepends="python3-dev py3-setuptools"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-pystache py2-pystache"
builddir="$srcdir"/$_pyname-$pkgver
options="!check" # upstream has no test suite

build() {
	python3 setup.py build
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="4ac325e1431f58f740218c9ec309821db82d89989ef4ca7fc3536dea0ef1c90e8e85ebaa7df27f33129ca02252b84bcbd7429a1ed999b496f62f174dd66502cb  pystache-0.5.4.tar.gz"

A sr.ht/py3-qrcode/APKBUILD => sr.ht/py3-qrcode/APKBUILD +30 -0
@@ 0,0 1,30 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-qrcode
_pyname=qrcode
pkgver=6.1
pkgrel=0
pkgdesc="QR Code image generator"
url="https://github.com/lincolnloop/python-qrcode"
arch="noarch"
license="MIT"
depends="py3-pillow py3-six"
makedepends="python3-dev py3-setuptools"
_pypiprefix="${_pyname%${_pyname#?}}"
subpackages="$pkgname-doc"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-qrcode py2-qrcode"
builddir="$srcdir/$_pyname-$pkgver"

build() {
	python3 setup.py build
}

check() {
	python3 setup.py check
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="4831553932442f5535cba15d5958a656b399112f0f379c28ad9b610c33d88ec6d0613dc7047a2315606e49f027bfd13a15a332ce86b80040d56e1114a0f62251  qrcode-6.1.tar.gz"

A sr.ht/py3-unidiff/APKBUILD => sr.ht/py3-unidiff/APKBUILD +29 -0
@@ 0,0 1,29 @@
# Contributor: Drew DeVault <sir@cmpwn.com>
# Maintainer: Drew DeVault <sir@cmpwn.com>
pkgname=py3-unidiff
_pyname=unidiff
pkgver=0.5.5
pkgrel=1
pkgdesc="Unified diff python parsing/metadata extraction library"
url="https://pypi.org/project/unidiff/"
arch="noarch"
license="MIT"
makedepends="py3-setuptools py3-pytest"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
replaces="py-unidiff py2-unidiff"
builddir="$srcdir"/$_pyname-$pkgver

build() {
	python3 setup.py build
}

check() {
	python3 setup.py test
}

package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="eaa71dfb6c449f18dd23204070c8afa8185bc64151519e8b85a82978ab51984aafd2e26b948657352f8b0277e7fbfe68c71e0b7cb3fb56cd3e789a77296f5c9e  unidiff-0.5.5.tar.gz"

M sr.ht/py3-webencodings/APKBUILD => sr.ht/py3-webencodings/APKBUILD +10 -7
@@ 1,25 1,28 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
_name=webencodings
pkgname=py3-webencodings
_pyname=webencodings
pkgver=0.5.1
pkgrel=0
pkgrel=1
pkgdesc="A Python implementation of the WHATWG Encoding standard"
url="https://github.com/gsnedders/python-webencodings"
arch="noarch"
license="BSD"
depends="python3"
makedepends="py-setuptools"
source="${pkgname}-${pkgver}.tar.gz::https://github.com/gsnedders/python-webencodings/archive/v$pkgver.tar.gz"
builddir="$srcdir/python-webencodings-${pkgver}"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"

build() {
	python3 setup.py build
}

check() {
	cd "$builddir"
	python3 setup.py check
}

package() {
	cd "$builddir"
	python3 setup.py install --root="$pkgdir" --optimize=1
}

sha512sums="c5cb34f35fb5bc7ffb88c19eb3262dedbf6231c0ee2871dccbc0f9497193d8209fc20703d451a2bb41a5ff913e63abf7481f7a8f9886c953724e9cf71c34cb74  py3-webencodings-0.5.1.tar.gz"
sha512sums="b727b01bac6ec79bca517960d27b4c0668b295f25559471b9641c2c33dab55db6dac9c990952177964c6418382c22831b14d57df5e632d51d7abf97b61f24326  webencodings-0.5.1.tar.gz"

R sr.ht/py-webencodings/APKBUILD => sr.ht/py3-webencodings/py-webencodings/APKBUILD +0 -0