1
0

python_wot_plugin.py 1.2 KB

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env python3
  2. import snapcraft
  3. import snapcraft.plugins.v2 as plugins
  4. from typing import Any, Dict, List, Set
  5. import os
  6. """
  7. See snapcraft.plugins.v2.python.PythonPlugin
  8. Plugin forces removal of 'typing' package
  9. after setup, as 'typing' is causing problems
  10. for python >= 3.7, see:
  11. - https://github.com/pypa/pip/issues/8272
  12. """
  13. class PluginImpl(plugins.python.PythonPlugin):
  14. def get_build_commands(self) -> List[str]:
  15. cmds = super().get_build_commands()
  16. # cmds.insert(1, 'python3 -m pip install --upgrade pip');
  17. # cmds.insert(2, 'python3 -m pip install -U "setuptools<58"')
  18. #cmds.insert(1, 'pip install --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org --upgrade pip')
  19. for idx, cmd in enumerate(cmds):
  20. # Find position where to inject pip uninstall
  21. if cmd.strip().startswith('[ -f setup.py ]'):
  22. xcmds = cmd.split("&&", 1)
  23. # Inject and force removal
  24. # cmds[idx] = f"{xcmds[0]} && pip uninstall -y typing uuid && {xcmds[1]}"
  25. cmds[idx] = f"{xcmds[0]} && pip uninstall -y typing uuid && {xcmds[1]}"
  26. return cmds