# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_USE_PEP517=poetry
PYTHON_COMPAT=( python3_{12,13,14} )

inherit distutils-r1 pypi

DESCRIPTION="Asynchronous Python library to communicate with the Husqvarna Automower Connect API"
HOMEPAGE="
	https://github.com/Thomas55555/aioautomower
	https://pypi.org/project/aioautomower/
"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"

RDEPEND="
	>=dev-python/aiohttp-3.9.0[${PYTHON_USEDEP}]
	>=dev-python/mashumaro-3.12[${PYTHON_USEDEP}]
	dev-python/orjson[${PYTHON_USEDEP}]
"

BDEPEND="
	dev-python/hatchling[${PYTHON_USEDEP}]
	test? (
		>=dev-python/pytest-7.0[${PYTHON_USEDEP}]
		dev-python/pytest-asyncio[${PYTHON_USEDEP}]
		dev-python/pytest-cov[${PYTHON_USEDEP}]
		dev-python/aresponses[${PYTHON_USEDEP}]
		dev-python/syrupy[${PYTHON_USEDEP}]
	)
"



python_prepare_all() {
	python3 - <<'EOF' || die "Failed to patch pyproject.toml"
import re, pathlib

p = pathlib.Path("pyproject.toml")
lines = p.read_text().splitlines(keepends=True)
out, skip = [], False

for line in lines:
    s = line.strip()

    # 1. Replace the build backend
    line = line.replace(
        '"poetry_dynamic_versioning.backend"',
        '"poetry.core.masonry.api"',
    )

    # 2. Remove poetry-dynamic-versioning from [build-system] requires
    if "poetry-dynamic-versioning" in line:
        line = re.sub(r',?\s*"poetry-dynamic-versioning[^"]*"', "", line)
        line = re.sub(r'"poetry-dynamic-versioning[^"]*",?\s*', "", line)

    # 3. Drop ALL [tool.poetry.group.dev*] sections and their content.
    #    poetry-core rejects the non-package keys (e.g. enable/metadata)
    #    that poetry-dynamic-versioning places there; we don't need dev
    #    deps to build the wheel anyway.
    if re.match(r'^\[tool\.poetry\.group\.dev', s):
        skip = True
        continue
    if skip and s.startswith("["):
        skip = False
    if not skip:
        out.append(line)

p.write_text("".join(out))
EOF
	distutils-r1_python_prepare_all
}



src_test() {
	epytest tests/
}