list.py 797 B

12345678910111213141516171819202122232425262728293031323334
  1. import glob
  2. from pathlib import Path
  3. from ..manylinux import ensure_image, PythonVersion
  4. from ..utils.log import log
  5. __all__ = ['execute']
  6. def _unpack_args(args):
  7. '''Unpack command line arguments
  8. '''
  9. return (args.tag,)
  10. def execute(tag):
  11. '''List python versions installed in a manylinux image
  12. '''
  13. image = ensure_image(tag)
  14. pythons = []
  15. for path in glob.glob(str(image.path / 'opt/python/cp*')):
  16. path = Path(path)
  17. version = PythonVersion.from_str(path.readlink().name[8:]).long()
  18. pythons.append((path.name, version))
  19. pythons = sorted(pythons)
  20. n = max(len(version) for (_, version) in pythons)
  21. for (abi, version) in pythons:
  22. log('LIST', "{:{n}} -> /opt/python/{:}".format(version, abi, n=n))
  23. return pythons