#!/usr/bin/env python3

import snapcraft
import snapcraft.plugins.v2 as plugins
from typing import Any, Dict, List, Set
import os

"""
See snapcraft.plugins.v2.python.PythonPlugin

Plugin forces removal of 'typing' package
after setup, as 'typing' is causing problems
for python >= 3.7, see:

- https://github.com/pypa/pip/issues/8272
"""
class PluginImpl(plugins.python.PythonPlugin):
    def get_build_commands(self) -> List[str]:
        cmds = super().get_build_commands()
        for idx, cmd in enumerate(cmds):
            if cmd.strip().startswith('pip install -c') and "requirements_all" in cmd:
                cmds[idx] = f"{cmd.strip()} --use-deprecated=legacy-resolver"
            elif "[ -f setup.py ]" in cmd:
                # Use cfg instead of py
                cmds[idx] = cmd.replace('[ -f setup.py ]', '"${SNAPCRAFT_PYTHON_INTERPRETER}" -m build')
        return cmds