From 3902b73c9836661057837ecffda34e273e7d495d Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Fri, 5 Jan 2024 14:55:17 +0100
Subject: [PATCH] Add license header and comments

---
 build_models_xml.py | 34 ++++++++++++++++++++++++++++++----
 1 file changed, 30 insertions(+), 4 deletions(-)

diff --git a/build_models_xml.py b/build_models_xml.py
index a956a4d..b945994 100755
--- a/build_models_xml.py
+++ b/build_models_xml.py
@@ -1,7 +1,31 @@
 #!/usr/bin/python3
 
-# Fetch package registry list, build models.xml structure
-# with the latest version of each model
+'''
+Copyright (C) 2023 NIBIO
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+@author Tor-Einar Skog <tor-einar.skog@nibio.no>
+'''
+
+# Fetches the package registry list from our GitLab,
+# filters only models packages,
+# figures out which is the newest version of each package,
+# creates Maven dependencies XML stubs
+# dumps to stdout
+# Example usage: 
+# $ ./build_models_xml.py -s > models.xml
 
 import sys
 import requests
@@ -11,9 +35,11 @@ if len(sys.argv) == 2 and sys.argv[1] == "-h":
     print("""usage: build_with_models [-s]""")
     exit(0)
 
+# Use the -s option to fetch only SNAPSHOT versions
 snapshot = True if len(sys.argv) == 2 and sys.argv[1] == "-s" else False
 
 url = "https://gitlab.nibio.no/api/v4/projects/401/packages?per_page=100&order_by=version&sort=desc"
+
 all_packages = []
 
 response = requests.get(url)
@@ -35,6 +61,7 @@ models = {}
 
 model_prefixes = ["no/nibio/vips/model","fi/luke/vips/model"]
 
+# Filter models and store only the most recent version (highest alphanumeric number)
 for package in all_packages:
     for model_prefix in model_prefixes:
         if package["name"].find(model_prefix) >=0 and ((snapshot and package["version"].find("SNAPSHOT")>=0) or (not snapshot and package["version"].find("SNAPSHOT")<0)):
@@ -53,9 +80,8 @@ for model_name, value in models.items():
     ET.SubElement(dependency,"groupId").text = value["groupId"]
     ET.SubElement(dependency, "artifactId").text = model_name
     ET.SubElement(dependency, "version").text = value["version"]
-    #print("%s %s" % (model_name, value["version"]))
 
+# Dumps the indented XML to stdout
 tree = ET.ElementTree(dependencies)
 ET.indent(tree, space="\t",level=0)
-# Dumps the indented XML to stdout
 ET.dump(tree)
-- 
GitLab