xmlclass/xsdschema.py
branchpython3
changeset 3750 f62625418bff
parent 2457 9deec258ab1a
child 3752 9f6f46dbe3ae
--- a/xmlclass/xsdschema.py	Mon Mar 27 10:19:14 2023 +0200
+++ b/xmlclass/xsdschema.py	Fri Oct 28 12:39:15 2022 +0800
@@ -23,8 +23,8 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 
-from __future__ import absolute_import
-from __future__ import print_function
+
+
 import os
 import re
 import datetime
@@ -32,7 +32,7 @@
 from xml.dom import minidom
 from future.builtins import round
 from six import string_types
-from past.builtins import long
+from past.builtins import int
 
 from xmlclass.xmlclass import *
 
@@ -77,9 +77,9 @@
 
 
 DEFAULT_FACETS = GenerateDictFacets(["pattern", "whiteSpace", "enumeration"])
-NUMBER_FACETS = GenerateDictFacets(DEFAULT_FACETS.keys() + ["maxInclusive", "maxExclusive", "minInclusive", "minExclusive"])
-DECIMAL_FACETS = GenerateDictFacets(NUMBER_FACETS.keys() + ["totalDigits", "fractionDigits"])
-STRING_FACETS = GenerateDictFacets(DEFAULT_FACETS.keys() + ["length", "minLength", "maxLength"])
+NUMBER_FACETS = GenerateDictFacets(list(DEFAULT_FACETS.keys()) + ["maxInclusive", "maxExclusive", "minInclusive", "minExclusive"])
+DECIMAL_FACETS = GenerateDictFacets(list(NUMBER_FACETS.keys()) + ["totalDigits", "fractionDigits"])
+STRING_FACETS = GenerateDictFacets(list(DEFAULT_FACETS.keys()) + ["length", "minLength", "maxLength"])
 
 ALL_FACETS = ["pattern", "whiteSpace", "enumeration", "maxInclusive",
               "maxExclusive", "minInclusive", "minExclusive", "totalDigits",
@@ -204,7 +204,7 @@
                 if len(facets) == 0:
                     facets[facettype] = ([value], False)
                     continue
-                elif facets.keys() == [facettype]:
+                elif list(facets.keys()) == [facettype]:
                     facets[facettype][0].append(value)
                     continue
                 else:
@@ -302,14 +302,14 @@
             facets[facettype] = (value, facet.get("fixed", False))
 
         # Report not redefined facet from base type to new created type
-        for facettype, facetvalue in basetypeinfos["facets"].items():
+        for facettype, facetvalue in list(basetypeinfos["facets"].items()):
             if facettype not in facets:
                 facets[facettype] = facetvalue
 
         # Generate extract value for new created type
         def ExtractSimpleTypeValue(attr, extract=True):
             value = basetypeinfos["extract"](attr, extract)
-            for facetname, (facetvalue, _facetfixed) in facets.items():
+            for facetname, (facetvalue, _facetfixed) in list(facets.items()):
                 if facetvalue is not None:
                     if facetname == "enumeration" and value not in facetvalue:
                         raise ValueError("\"%s\" not in enumerated values" % value)
@@ -328,7 +328,7 @@
                     elif facetname == "maxExclusive" and value >= facetvalue:
                         raise ValueError("value must be lesser than %s" % str(facetvalue))
                     elif facetname == "pattern":
-                        model = re.compile("(?:%s)?$" % "|".join(map(lambda x: "(?:%s)" % x, facetvalue)))
+                        model = re.compile("(?:%s)?$" % "|".join(["(?:%s)" % x for x in facetvalue]))
                         result = model.match(value)
                         if result is None:
                             if len(facetvalue) > 1:
@@ -343,7 +343,7 @@
             return value
 
         def CheckSimpleTypeValue(value):
-            for facetname, (facetvalue, _facetfixed) in facets.items():
+            for facetname, (facetvalue, _facetfixed) in list(facets.items()):
                 if facetvalue is not None:
                     if facetname == "enumeration" and value not in facetvalue:
                         return False
@@ -362,7 +362,7 @@
                     elif facetname == "maxExclusive" and value >= facetvalue:
                         return False
                     elif facetname == "pattern":
-                        model = re.compile("(?:%s)?$" % "|".join(map(lambda x: "(?:%s)" % x, facetvalue)))
+                        model = re.compile("(?:%s)?$" % "|".join(["(?:%s)" % x for x in facetvalue]))
                         result = model.match(value)
                         if result is None:
                             if len(facetvalue) > 1:
@@ -372,7 +372,7 @@
             return True
 
         def SimpleTypeInitialValue():
-            for facetname, (facetvalue, _facetfixed) in facets.items():
+            for facetname, (facetvalue, _facetfixed) in list(facets.items()):
                 if facetvalue is not None:
                     if facetname == "enumeration":
                         return facetvalue[0]
@@ -515,7 +515,7 @@
     if base is not None:
         basetypeinfos = factory.FindSchemaElement(base)
         if not isinstance(basetypeinfos, string_types) and basetypeinfos["type"] == COMPLEXTYPE:
-            attrnames = dict(map(lambda x: (x["name"], True), basetypeinfos["attributes"]))
+            attrnames = dict([(x["name"], True) for x in basetypeinfos["attributes"]])
 
     for element in elements:
         if element["type"] == ATTRIBUTE:
@@ -996,7 +996,7 @@
     elif isinstance(schema, dict):
         if not isinstance(reference, dict) or len(schema) != len(reference):
             return False
-        for name, value in schema.items():
+        for name, value in list(schema.items()):
             ref_value = reference.get(name, None)
             if ref_value is None and value is not None:
                 return False
@@ -1061,7 +1061,7 @@
             if child.nodeType == self.Document.ELEMENT_NODE:
                 schema = child
                 break
-        for qualified_name, attr in schema._attrs.items():
+        for qualified_name, attr in list(schema._attrs.items()):
             namespace, name = DecomposeQualifiedName(qualified_name)
             if namespace == "xmlns":
                 value = GetAttributeValue(attr)
@@ -2244,7 +2244,7 @@
         "facets": STRING_FACETS,
         "generate": GenerateSimpleTypeXMLText(str),
         "initial": lambda: 0,
-        "check": lambda x: isinstance(x, (int, long))
+        "check": lambda x: isinstance(x, int)
     },
 
     "hexBinary": {
@@ -2254,7 +2254,7 @@
         "facets": STRING_FACETS,
         "generate": GenerateSimpleTypeXMLText(lambda x: ("%."+str(int(round(len("%X" % x)/2.)*2))+"X") % x),
         "initial": lambda: 0,
-        "check": lambda x: isinstance(x, (int, long))
+        "check": lambda x: isinstance(x, int)
     },
 
     "integer": {