You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

pypi_list.py 2.0 kB

4 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import argparse
  2. import requests
  3. import logging
  4. import pip._internal
  5. if __name__ == "__main__":
  6. parser = argparse.ArgumentParser(description='Get the nth version of a given package')
  7. parser.add_argument('--package', type=str, required=True, help='The PyPI you want to inspect')
  8. parser.add_argument('--nth_last_version', type=int, default=1, help='The nth last package will be retrieved')
  9. parser.add_argument('--prerelease', help='Get PreRelease Package Version', action='store_true')
  10. parser.add_argument('--debug', help='Print debug information', action='store_true')
  11. args = parser.parse_args()
  12. # create logger
  13. logger = logging.getLogger("PyPI_CLI")
  14. formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
  15. ch = logging.StreamHandler()
  16. ch.setLevel(logging.DEBUG)
  17. ch.setFormatter(formatter)
  18. logger.addHandler(ch)
  19. if args.debug:
  20. logger.setLevel(logging.DEBUG)
  21. logger.debug("Package: %s" % args.package)
  22. logger.debug("nth_last_version: %s" % args.nth_last_version)
  23. logger.debug("prerelease: %s" % args.prerelease)
  24. logger.debug("debug: %s" % args.debug)
  25. finder = pip._internal.index.PackageFinder(
  26. [],
  27. ['https://pypi.python.org/simple'],
  28. session=requests.Session()
  29. )
  30. results = finder.find_all_candidates(args.package)
  31. tmp_versions = [str(p.version) for p in results]
  32. logger.debug("%s" % tmp_versions)
  33. versions = list()
  34. for el in tmp_versions:
  35. if el not in versions:
  36. versions.append(el)
  37. pos = -1
  38. nth_version = 1
  39. while True:
  40. fetched_version = versions[pos]
  41. logger.debug("Version: %s" % fetched_version)
  42. if nth_version == args.nth_last_version:
  43. if args.prerelease or not ("rc" in fetched_version or "a" in fetched_version or "b" in fetched_version):
  44. break
  45. else:
  46. pos -= 1
  47. continue
  48. pos -= 1
  49. nth_version += 1
  50. print(fetched_version)

TensorLayer3.0 是一款兼容多种深度学习框架为计算后端的深度学习库。计划兼容TensorFlow, Pytorch, MindSpore, Paddle.