[sysadmin-bin] Use Python 3 for easy UTF-8 support
- From: Bartłomiej Piotrowski <bpiotrowski src gnome org>
- To: gnome-sysadmin gnome org,commits-list gnome org
- Subject: [sysadmin-bin] Use Python 3 for easy UTF-8 support
- Date: Tue, 21 Jul 2020 12:16:34 +0000 (UTC)
commit bc82f808791e114f3983f486f315263d01879a4c
Author: Bartłomiej Piotrowski <bpiotrowski gnome org>
Date: Tue Jul 21 14:13:26 2020 +0200
Use Python 3 for easy UTF-8 support
git/extract-doap-info | 70 ++++++++++++++++++++++-----------------------------
1 file changed, 30 insertions(+), 40 deletions(-)
---
diff --git a/git/extract-doap-info b/git/extract-doap-info
index e405a65..56164e6 100755
--- a/git/extract-doap-info
+++ b/git/extract-doap-info
@@ -1,8 +1,8 @@
-#!/usr/bin/python
+#!/usr/bin/python3.6
-from cStringIO import StringIO
import os
import sys
+import xml.etree.ElementTree as et
script_path = os.path.realpath(os.path.abspath(sys.argv[0]))
script_dir = os.path.dirname(script_path)
@@ -12,51 +12,41 @@ if len(sys.argv) < 2:
sys.exit(1)
git_dir = sys.argv[1]
-import semi_rdf
-
DOAP = "http://usefulinc.com/ns/doap#"
GNOME = "http://api.gnome.org/doap-extensions#"
+RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
groups = {
- (GNOME + 'core'): 'core',
- (GNOME + 'core-apps'): 'core-apps',
- (GNOME + 'apps'): 'apps',
- (GNOME + 'admin'): 'admin',
- (GNOME + 'bindings'): 'bindings',
- (GNOME + 'deprecated'): 'deprecated',
- (GNOME + 'desktop'): 'desktop',
- (GNOME + 'development'): 'development',
- (GNOME + 'infrastructure'): 'infrastructure',
- (GNOME + 'platform'): 'platform',
- (GNOME + 'productivity'): 'productivity'
- }
+ (GNOME + "core"): "core",
+ (GNOME + "core-apps"): "core-apps",
+ (GNOME + "apps"): "apps",
+ (GNOME + "admin"): "admin",
+ (GNOME + "bindings"): "bindings",
+ (GNOME + "deprecated"): "deprecated",
+ (GNOME + "desktop"): "desktop",
+ (GNOME + "development"): "development",
+ (GNOME + "infrastructure"): "infrastructure",
+ (GNOME + "platform"): "platform",
+ (GNOME + "productivity"): "productivity",
+}
rdf = sys.stdin.read()
+prj = et.fromstring(rdf)
# We save the entire DOAP file into GIT_DIR for later use
-fd = open(os.path.join(git_dir, "gnome_doap"), 'w')
-fd.write(rdf)
-fd.close()
+with open(os.path.join(git_dir, "gnome_doap"), "w") as f:
+ f.write(rdf)
# And then pre-parse out a couple of particular properties
-nodes = semi_rdf.read_rdf(StringIO(rdf))
-for node in nodes:
- if node.name != (DOAP, "Project"):
- continue
-
- shortdesc = node.find_property((DOAP, "shortdesc"))
- fd = open(os.path.join(git_dir, 'description'), 'w')
- print >> fd, shortdesc
- fd.close()
-
- group = node.find_property((DOAP, "category"))
- group = groups.get(group, 'other')
- fd = open(os.path.join(git_dir, 'gnome_group'), 'w')
- print >> fd, group
- fd.close()
-
- fd = open(os.path.join(git_dir, 'programming-languages'), 'w')
- fd.write("\n".join(node.find_properties((DOAP, 'programming-language'))))
- fd.close()
-
- break
+category_attr = prj.find(f"{{{DOAP}}}category").attrib
+category = category_attr.get(f"{{{RDF}}}resource").split("#")[1]
+with open(os.path.join(git_dir, "gnome_group"), "w") as f:
+ f.write(f"{category}\n")
+
+shortdesc = prj.find(f"{{{DOAP}}}shortdesc").text
+with open(os.path.join(git_dir, "description"), "w") as f:
+ f.write(f"{shortdesc}\n")
+
+proglang = prj.find(f"{{{DOAP}}}programming-language").text
+with open(os.path.join(git_dir, "programming-language"), "w") as f:
+ f.write(f"{proglang}\n")
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]