aboutsummaryrefslogtreecommitdiff
path: root/pypi/version.scm
diff options
context:
space:
mode:
Diffstat (limited to 'pypi/version.scm')
-rw-r--r--pypi/version.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/pypi/version.scm b/pypi/version.scm
new file mode 100644
index 0000000..e4d0b35
--- /dev/null
+++ b/pypi/version.scm
@@ -0,0 +1,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)
+ '())))))