[Pkg-isocodes-devel] [iso-codes] 05/05: Change code to handle simplified ISO 3166-2 data

Tobias Quathamer toddy at moszumanska.debian.org
Fri Mar 25 22:08:32 UTC 2016


This is an automated email from the git hooks/post-receive script.

toddy pushed a commit to branch master
in repository iso-codes.

commit 2e3fc111d3bbd4a7e85f9fe41fb486ed98e30ce1
Author: Dr. Tobias Quathamer <toddy at debian.org>
Date:   Fri Mar 25 23:08:10 2016 +0100

    Change code to handle simplified ISO 3166-2 data
---
 bin/xml_from_json.py | 38 ++++++++++++++++++++++++++------------
 1 file changed, 26 insertions(+), 12 deletions(-)

diff --git a/bin/xml_from_json.py b/bin/xml_from_json.py
index 07a1910..03aef8a 100755
--- a/bin/xml_from_json.py
+++ b/bin/xml_from_json.py
@@ -502,18 +502,32 @@ with open(xml_file, "w") as outfile:
         outfile.write(headers["3166-2"])
         outfile.write("\n")
         outfile.write("<iso_3166_2_entries>\n")
-        for country in get_iso_entries("3166-2"):
-            outfile.write("<iso_3166_country code=\"" + country["code"] + "\">\n")
-            for subset in country["subsets"]:
-                outfile.write("<iso_3166_subset type=\"" + subset["type"] + "\">\n")
-                for item in subset["items"]:
-                    outfile.write("\t<iso_3166_2_entry\n")
-                    outfile.write("\t\tcode=\"" + item["code"] + "\"\tname=\"" + item["name"] + "\"")
-                    if "parent" in item:
-                        outfile.write("\tparent=\"" + item["parent"] + "\"")
-                    outfile.write(" />\n")
-                outfile.write("</iso_3166_subset>\n")
-            outfile.write("</iso_3166_country>\n")
+        last_country_code = ""
+        subsets = {}
+        for entry in get_iso_entries("3166-2"):
+            country_code = entry["code"].split("-")[0]
+            # Initialize for every new country
+            if last_country_code != country_code:
+                # Write out if subsets are filled
+                if len(subsets) > 0:
+                    outfile.write("<iso_3166_country code=\"" + last_country_code + "\">\n")
+                    for subset in subsets:
+                        outfile.write("<iso_3166_subset type=\"" + subset + "\">\n")
+                        for item in subsets[subset]:
+                            outfile.write("\t<iso_3166_2_entry\n")
+                            outfile.write("\t\tcode=\"" + item["code"] + "\"\tname=\"" + item["name"] + "\"")
+                            if "parent" in item:
+                                outfile.write("\tparent=\"" + item["parent"] + "\"")
+                            outfile.write(" />\n")
+                        outfile.write("</iso_3166_subset>\n")
+                    outfile.write("</iso_3166_country>\n")
+                last_country_code = country_code
+                subsets = {}
+            # Group by subset types
+            if entry["type"] not in subsets:
+                subsets[entry["type"]] = [entry]
+            else:
+                subsets[entry["type"]].append(entry)
         outfile.write("</iso_3166_2_entries>\n")
     #
     # Handle ISO 15924

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-isocodes/iso-codes.git



More information about the Pkg-isocodes-devel mailing list