aboutsummaryrefslogtreecommitdiff
path: root/pypi/version.scm
blob: e4d0b3580d79e1a4cc257fe019ebd9cadefc6579 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(define-module (pypi version)
  #:use-module (pyguile)
  #:export (sort-versions))

(define (sort-versions versions)
  (if (null? versions)
    versions
    (begin
      (python-eval "from packaging.version import parse")
      (let
        ((sort
          (python-eval
            "lambda vs: [s for s, v in sorted([(s, parse(s)) for s in vs], key=lambda x: x[1], reverse=True)]"
            #t)))
        (python-apply
          sort
          (list versions)
          '())))))