diff --git a/dev-python/FVS/FVS-0.3.4.ebuild b/dev-python/FVS/FVS-0.3.4.ebuild
index 0179a06..6cfc07c 100644
--- a/dev-python/FVS/FVS-0.3.4.ebuild
+++ b/dev-python/FVS/FVS-0.3.4.ebuild
@@ -1,18 +1,18 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{9..11} )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="File Versioning System with hash comparison"
HOMEPAGE="
https://github.com/mirkobrombin/FVS
https://pypi.org/project/fvs/
"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="$(pypi_sdist_url --no-normalize "${PN}" "${PV}")"
LICENSE="MIT"
SLOT="0"
diff --git a/dev-python/aspectlib/aspectlib-1.5.2-r1.ebuild b/dev-python/aspectlib/aspectlib-1.5.2-r1.ebuild
index 77f7b81..c18e7a3 100644
--- a/dev-python/aspectlib/aspectlib-1.5.2-r1.ebuild
+++ b/dev-python/aspectlib/aspectlib-1.5.2-r1.ebuild
@@ -1,15 +1,14 @@
-# Copyright 2021-2022 Gentoo Authors
+# Copyright 2021-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517="setuptools"
PYTHON_COMPAT=( python3_{8..11} )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="An aspect-oriented programming, monkey-patch and decorators library."
HOMEPAGE="https://github.com/ionelmc/python-aspectlib"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
diff --git a/dev-python/janus/Manifest b/dev-python/janus/Manifest
index 43e31d3..c9a3117 100644
--- a/dev-python/janus/Manifest
+++ b/dev-python/janus/Manifest
@@ -1,2 +1 @@
-DIST janus-0.5.0.tar.gz 18006 BLAKE2B 9e22d63cdf5b388f22d2d9f021d289560db127f71b3f4d338affc204379ef633ad88c4cb87abb697b6fcbc839f2e0b2249b0ee4895262bf26e75f23ac4c12471 SHA512 9b220347ad29c1bf613a3db9468c41c0c5216d245a320ccaeb97f784d6a6e9ae631ccac951b18d15e706debd512e25de8c079e79a5c68d195b97cadbeba971a2
DIST janus-1.0.0.tar.gz 19043 BLAKE2B 0a70e47525d5dbaac019428773dea03bf6fea452aa542be3419b369674b8e06245f3e5566672b2533bfaa8b658a1f591aed19086d54652ef5f57753f96355e82 SHA512 d66899adad12cc1100a20cb75d8e146321ef947bde996a07490158a5f34c39421bb1a5b08ac87679264a6bee1d3dc9f425fa29d52199626d322fe4462ed8f1f3
diff --git a/dev-python/janus/janus-0.5.0.ebuild b/dev-python/janus/janus-0.5.0.ebuild
deleted file mode 100644
index 5b2f22b..0000000
--- a/dev-python/janus/janus-0.5.0.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# credit goes to ebuild repository gentoo-zh
-
-EAPI=7
-PYTHON_COMPAT=( python3_{8,9} pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="Implementation of the asyncio (PEP 3156) event-loop with Qt"
-HOMEPAGE="https://github.com/aio-libs/janus"
-MY_P="${P/_alpha/a}"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
-IUSE="test"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-DEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest[${PYTHON_USEDEP}]
- )
-"
-
-python_test() {
- py.test -v || die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-}
diff --git a/dev-python/janus/janus-1.0.0.ebuild b/dev-python/janus/janus-1.0.0.ebuild
index 15977e0..6e81513 100644
--- a/dev-python/janus/janus-1.0.0.ebuild
+++ b/dev-python/janus/janus-1.0.0.ebuild
@@ -1,16 +1,14 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{9..11} )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="Thread-safe asyncio-aware queue for Python"
HOMEPAGE="https://github.com/aio-libs/janus"
-#SRC_URI="https://github.com/aio-libs/janus/archive/refs/tags/v1.0.0.tar.gz -> ${P}.gh.tar.gz"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
diff --git a/dev-python/pygaljs/Manifest b/dev-python/pygaljs/Manifest
deleted file mode 100644
index ae21075..0000000
--- a/dev-python/pygaljs/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST pygaljs-1.0.2.tar.gz 89711 BLAKE2B 64287ac1238183e34b99275218f8598546b455f9de7df0f8285691e253a8421d1287eb9c499910eed47d2e971d4f709d0341a7e56129cbcca70c938105e1d5ad SHA512 d7e0000e8cc55cde9ca455c4761c83202a95aadb2431086cb5ee21b44307f35ccc8431a50b43699814d0cdec0d8f4c14df68ec19c0ad0ac27f2c7eec85799a82
diff --git a/dev-python/pygaljs/metadata.xml b/dev-python/pygaljs/metadata.xml
deleted file mode 100644
index 6489861..0000000
--- a/dev-python/pygaljs/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- parona@protonmail.com
- Alfred Wingate
-
-
- ionelmc/python-pygaljs
-
-
diff --git a/dev-python/pygaljs/pygaljs-1.0.2-r1.ebuild b/dev-python/pygaljs/pygaljs-1.0.2-r1.ebuild
deleted file mode 100644
index bced3c2..0000000
--- a/dev-python/pygaljs/pygaljs-1.0.2-r1.ebuild
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2021-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..11} )
-inherit distutils-r1
-
-DESCRIPTION="Python package providing assets from pygal.js"
-HOMEPAGE="https://github.com/ionelmc/python-pygaljs"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="~amd64"
-
-distutils_enable_tests pytest
-
-DOCS=( "README.rst" )
diff --git a/dev-python/pytest-benchmark/Manifest b/dev-python/pytest-benchmark/Manifest
deleted file mode 100644
index 2b52de3..0000000
--- a/dev-python/pytest-benchmark/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST pytest-benchmark-3.4.1.tar.gz 340349 BLAKE2B 474743ef6c2d098ca6451e6da1a40686a529af901bf40ba8daf900844166895c676e3a95e8c252557d97d6668e077f625f96c90c00cdb4a1de021a5e5abae479 SHA512 630b27462796aea97c2d878bb936009d59e1c33be3f4219113eae5e389d2cd7912a7f7bc10a1a9a7abbfc4f69213be10a3cc68bbdceef0783f4b0a8a13600119
diff --git a/dev-python/pytest-benchmark/files/python3_10_test.patch b/dev-python/pytest-benchmark/files/python3_10_test.patch
deleted file mode 100644
index 7488181..0000000
--- a/dev-python/pytest-benchmark/files/python3_10_test.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-diff --git a/tests/test_cli.py b/tests/test_cli.py
-index c71ef22..d2ae1da 100644
---- a/tests/test_cli.py
-+++ b/tests/test_cli.py
-@@ -3,13 +3,14 @@ from collections import namedtuple
-
- import py
- import pytest
-+from os import environ
- from _pytest.pytester import LineMatcher
-
- pytest_plugins = 'pytester',
-
- THIS = py.path.local(__file__)
- STORAGE = THIS.dirpath('test_storage')
--
-+environ["LINES"]="40"
-
- @pytest.fixture
- def testdir(testdir, monkeypatch):
-@@ -20,13 +21,13 @@ def testdir(testdir, monkeypatch):
-
- def test_help(testdir):
- result = testdir.run('py.test-benchmark', '--help')
-- result.stdout.fnmatch_lines([
-+ result.stdout.re_match_lines([
- "usage: py.test-benchmark *",
- " {help,list,compare} ...",
- "",
- "pytest_benchmark's management commands.",
- "",
-- "optional arguments:",
-+ "option(s|al arguments):",
- " -h [COMMAND], --help [COMMAND]",
- " Display help and exit.",
- " --storage URI, -s URI",
-@@ -49,7 +50,7 @@ def test_help(testdir):
-
- def test_help_command(testdir):
- result = testdir.run('py.test-benchmark', 'help')
-- result.stdout.fnmatch_lines([
-+ result.stdout.re_match_lines([
- 'usage: py.test-benchmark help [-h] [command]',
- '',
- 'Display help and exit.',
-@@ -57,7 +58,7 @@ def test_help_command(testdir):
- 'positional arguments:',
- ' command',
- '',
-- 'optional arguments:',
-+ 'option(s|al arguments):',
- ' -h, --help show this help message and exit',
- ])
-
-@@ -65,12 +66,12 @@ def test_help_command(testdir):
- @pytest.mark.parametrize('args', ['list --help', 'help list'])
- def test_help_list(testdir, args):
- result = testdir.run('py.test-benchmark', *args.split())
-- result.stdout.fnmatch_lines([
-+ result.stdout.re_match_lines([
- "usage: py.test-benchmark list [-h]",
- "",
- "List saved runs.",
- "",
-- "optional arguments:",
-+ "option(s|al arguments):",
- " -h, --help show this help message and exit",
- ])
- assert result.ret == 0
-@@ -79,7 +80,7 @@ def test_help_list(testdir, args):
- @pytest.mark.parametrize('args', ['compare --help', 'help compare'])
- def test_help_compare(testdir, args):
- result = testdir.run('py.test-benchmark', *args.split())
-- result.stdout.fnmatch_lines([
-+ result.stdout.re_match_lines([
- "usage: py.test-benchmark compare [-h] [--sort COL] [--group-by LABEL]",
- " [--columns LABELS] [--name FORMAT]",
- " [--histogram [FILENAME-PREFIX]]",
-@@ -92,7 +93,7 @@ def test_help_compare(testdir, args):
- " glob_or_file Glob or exact path for json files. If not specified",
- " all runs are loaded.",
- "",
-- "optional arguments:",
-+ "option(s|al arguments):",
- " -h, --help show this help message and exit",
- " --sort COL Column to sort on. Can be one of: 'min', 'max',",
- " 'mean', 'stddev', 'name', 'fullname'. Default: 'min'",
diff --git a/dev-python/pytest-benchmark/metadata.xml b/dev-python/pytest-benchmark/metadata.xml
deleted file mode 100644
index b7d0c9b..0000000
--- a/dev-python/pytest-benchmark/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- parona@protonmail.com
- Alfred Wingate
-
-
- ionelmc/pytest-benchmark
-
-
diff --git a/dev-python/pytest-benchmark/pytest-benchmark-3.4.1-r1.ebuild b/dev-python/pytest-benchmark/pytest-benchmark-3.4.1-r1.ebuild
deleted file mode 100644
index fd65faa..0000000
--- a/dev-python/pytest-benchmark/pytest-benchmark-3.4.1-r1.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..10} )
-inherit distutils-r1 multiprocessing
-
-DESCRIPTION="py.test fixture for benchmarking code"
-HOMEPAGE="https://github.com/ionelmc/pytest-benchmark"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="doc test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/aspectlib[${PYTHON_USEDEP}]
- dev-python/elasticsearch-py[${PYTHON_USEDEP}]
- dev-python/py-cpuinfo[${PYTHON_USEDEP}]
- dev-python/pygal[${PYTHON_USEDEP}]
- dev-python/pygaljs[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
-"
-DEPEND="
- test? (
- ${RDEPEND}
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests --install pytest
-distutils_enable_sphinx docs dev-python/sphinx-py3doc-enhanced-theme
-
-PATCHES=( "${FILESDIR}/python3_10_test.patch" )
-
-# Test success is affected by terminal width
-EPYTEST_DESELECT=( tests/test_cli.py::test_help tests/test_cli.py::test_help_compare )
-
-python_test() {
- epytest -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")"
-}
diff --git a/dev-python/pytest-isort/Manifest b/dev-python/pytest-isort/Manifest
deleted file mode 100644
index 95b9ba1..0000000
--- a/dev-python/pytest-isort/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST pytest-isort-2.0.0.tar.gz 7637 BLAKE2B aeb1797612fcba6f7421ffbd2c349d2353fccd60e88d314e9e64fb9b29bfd94b013a46edc46bbb863a501bd002451a1008ee6841b49f0f8d6dfba86211615afd SHA512 fc2e1f197da7893a96e9958e7527ee42f03e42206028701be5f90d684cb9bd077a61f516de2fc1446765ceaed07c188c05e2ff9a35fa0c1fea97b2c878c09d98
diff --git a/dev-python/pytest-isort/metadata.xml b/dev-python/pytest-isort/metadata.xml
deleted file mode 100644
index 8c7a15f..0000000
--- a/dev-python/pytest-isort/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- parona@protonmail.com
- Alfred Wingate
-
-
- stephrdev/pytest-isort
-
-
diff --git a/dev-python/pytest-isort/pytest-isort-2.0.0.ebuild b/dev-python/pytest-isort/pytest-isort-2.0.0.ebuild
deleted file mode 100644
index 24bde6c..0000000
--- a/dev-python/pytest-isort/pytest-isort-2.0.0.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{8..10} )
-inherit distutils-r1
-
-DESCRIPTION="py.test plugin to check import ordering using isort"
-HOMEPAGE="https://github.com/stephrdev/pytest-isort"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/isort[${PYTHON_USEDEP}]
-"
-DEPEND="
- test? (
- ${RDEPEND}
- )
-"
-
-distutils_enable_tests pytest
-
-DOCS=( "README.rst" )
diff --git a/dev-python/sphinx-py3doc-enhanced-theme/sphinx-py3doc-enhanced-theme-2.4.0.ebuild b/dev-python/sphinx-py3doc-enhanced-theme/sphinx-py3doc-enhanced-theme-2.4.0.ebuild
index 48eaea6..c11d668 100644
--- a/dev-python/sphinx-py3doc-enhanced-theme/sphinx-py3doc-enhanced-theme-2.4.0.ebuild
+++ b/dev-python/sphinx-py3doc-enhanced-theme/sphinx-py3doc-enhanced-theme-2.4.0.ebuild
@@ -1,14 +1,14 @@
-# Copyright 2021-2022 Gentoo Authors
+# Copyright 2021-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..11} )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="A theme based on the theme of https://docs.python.org/3/."
HOMEPAGE="https://github.com/ionelmc/sphinx-py3doc-enhanced-theme"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+SRC_URI="$(pypi_sdist_url --no-normalize "${PN}" "${PV}")"
LICENSE="BSD-2"
SLOT="0"
diff --git a/dev-python/unpaddedbase64/Manifest b/dev-python/unpaddedbase64/Manifest
deleted file mode 100644
index 6821792..0000000
--- a/dev-python/unpaddedbase64/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST unpaddedbase64-2.1.0.tar.gz 5621 BLAKE2B 9ccf1620b745cf208f260f357434316e37fca674e61984d14d2a25c2d44c66da51d42ef0dde272a9a5589c754e441981f33af80736d3c8f15c5b39f2a46da4e4 SHA512 ad4fe4f631c278dac69d7369661b3557a266d8324c07c6db8dda53042775ccf769180cb6bc4a532c50744e3b163fd7c7c843b7c3d50bcdd3cb9b4e4632a37100
diff --git a/dev-python/unpaddedbase64/metadata.xml b/dev-python/unpaddedbase64/metadata.xml
deleted file mode 100644
index 7954d92..0000000
--- a/dev-python/unpaddedbase64/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- parona@protonmail.com
- Alfred Wingate
-
-
- matrix-org/python-unpaddedbase64
-
-
diff --git a/dev-python/unpaddedbase64/unpaddedbase64-2.1.0-r1.ebuild b/dev-python/unpaddedbase64/unpaddedbase64-2.1.0-r1.ebuild
deleted file mode 100644
index 4d320e6..0000000
--- a/dev-python/unpaddedbase64/unpaddedbase64-2.1.0-r1.ebuild
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2020-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517="poetry"
-PYTHON_COMPAT=( python3_{8..11} )
-
-inherit distutils-r1
-
-DESCRIPTION="Encode and decode Base64 without "=" padding."
-HOMEPAGE="https://github.com/matrix-org/python-unpaddedbase64"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-
-distutils_enable_tests unittest