• Raul Tambre's avatar
    generate_policy_source.py: Python 3 compatibility · 41db909a
    Raul Tambre authored
    * map() returns an iterable instead of a list in Python 3. Convert it explicitly to a list.
    * xrange() is replaced in Python 3 by the functionally equivalent range().
    * Simplified checking whether an object is a string and introduced string_type that's set according to Python version.
    
    Still works with Python 2.
    
    Fixed errors:
    Traceback (most recent call last):
      File "../../components/policy/tools/generate_policy_source.py", line 1648, in <module>
        sys.exit(main())
      File "../../components/policy/tools/generate_policy_source.py", line 361, in main
        policy_atomic_groups = [
      File "../../components/policy/tools/generate_policy_source.py", line 362, in <listcomp>
        PolicyAtomicGroup(group, policy_details_set, policies_already_in_group)
      File "../../components/policy/tools/generate_policy_source.py", line 181, in __init__
        self._CheckPoliciesValidity(available_policies, policies_already_in_group)
      File "../../components/policy/tools/generate_policy_source.py", line 196, in _CheckPoliciesValidity
        raise RuntimeError('Invalid policy: ' + policy + ' in atomic group ' +
    RuntimeError: Invalid policy: RemoteAccessClientFirewallTraversal in atomic group RemoteAccess.
    
    Traceback (most recent call last):
      File "../../components/policy/tools/generate_policy_source.py", line 1647, in <module>
        sys.exit(main())
      File "../../components/policy/tools/generate_policy_source.py", line 379, in main
        GenerateFile(opts.source_path, _WritePolicyConstantSource, sorted=True)
      File "../../components/policy/tools/generate_policy_source.py", line 372, in GenerateFile
        writer(sorted and sorted_policy_details or policy_details,
      File "../../components/policy/tools/generate_policy_source.py", line 1079, in _WritePolicyConstantSource
        schema_generator.GenerateAndCollectID(chrome_schema, 'root node')
      File "../../components/policy/tools/generate_policy_source.py", line 839, in GenerateAndCollectID
        index = self.Generate(schema, name)
      File "../../components/policy/tools/generate_policy_source.py", line 787, in Generate
        properties = [
      File "../../components/policy/tools/generate_policy_source.py", line 789, in <listcomp>
        self.GetString(key), self.GenerateAndCollectID(subschema, key))
      File "../../components/policy/tools/generate_policy_source.py", line 839, in GenerateAndCollectID
        index = self.Generate(schema, name)
      File "../../components/policy/tools/generate_policy_source.py", line 752, in Generate
        return self.GetEnumType(schema, is_sensitive_value, name)
      File "../../components/policy/tools/generate_policy_source.py", line 694, in GetEnumType
        return self.GetEnumIntegerType(schema, is_sensitive_value, name)
      File "../../components/policy/tools/generate_policy_source.py", line 667, in GetEnumIntegerType
        if self.IsConsecutiveInterval(possible_values):
      File "../../components/policy/tools/generate_policy_source.py", line 662, in IsConsecutiveInterval
        for i in xrange(len(sortedSeq) - 1))
    NameError: name 'xrange' is not defined
    
    Traceback (most recent call last):
      File "../../components/policy/tools/generate_policy_source.py", line 1648, in <module>
        sys.exit(main())
      File "../../components/policy/tools/generate_policy_source.py", line 379, in main
        GenerateFile(opts.source_path, _WritePolicyConstantSource, sorted=True)
      File "../../components/policy/tools/generate_policy_source.py", line 372, in GenerateFile
        writer(sorted and sorted_policy_details or policy_details,
      File "../../components/policy/tools/generate_policy_source.py", line 1080, in _WritePolicyConstantSource
        schema_generator.GenerateAndCollectID(chrome_schema, 'root node')
      File "../../components/policy/tools/generate_policy_source.py", line 840, in GenerateAndCollectID
        index = self.Generate(schema, name)
      File "../../components/policy/tools/generate_policy_source.py", line 788, in Generate
        properties = [
      File "../../components/policy/tools/generate_policy_source.py", line 790, in <listcomp>
        self.GetString(key), self.GenerateAndCollectID(subschema, key))
      File "../../components/policy/tools/generate_policy_source.py", line 840, in GenerateAndCollectID
        index = self.Generate(schema, name)
      File "../../components/policy/tools/generate_policy_source.py", line 788, in Generate
        properties = [
      File "../../components/policy/tools/generate_policy_source.py", line 790, in <listcomp>
        self.GetString(key), self.GenerateAndCollectID(subschema, key))
      File "../../components/policy/tools/generate_policy_source.py", line 840, in GenerateAndCollectID
        index = self.Generate(schema, name)
      File "../../components/policy/tools/generate_policy_source.py", line 788, in Generate
        properties = [
      File "../../components/policy/tools/generate_policy_source.py", line 790, in <listcomp>
        self.GetString(key), self.GenerateAndCollectID(subschema, key))
      File "../../components/policy/tools/generate_policy_source.py", line 840, in GenerateAndCollectID
        index = self.Generate(schema, name)
      File "../../components/policy/tools/generate_policy_source.py", line 741, in Generate
        if not isinstance(schema['$ref'], types.StringTypes):
    AttributeError: module 'types' has no attribute 'StringTypes'
    
    Traceback (most recent call last):
      File "../../components/policy/tools/generate_policy_source.py", line 1651, in <module>
        sys.exit(main())
      File "../../components/policy/tools/generate_policy_source.py", line 383, in main
        GenerateFile(opts.source_path, _WritePolicyConstantSource, sorted=True)
      File "../../components/policy/tools/generate_policy_source.py", line 376, in GenerateFile
        writer(sorted and sorted_policy_details or policy_details,
      File "../../components/policy/tools/generate_policy_source.py", line 1093, in _WritePolicyConstantSource
        schema_generator.FindSensitiveChildren()
      File "../../components/policy/tools/generate_policy_source.py", line 959, in FindSensitiveChildren
        self.FindSensitiveChildrenRecursive(0, set())
      File "../../components/policy/tools/generate_policy_source.py", line 967, in FindSensitiveChildrenRecursive
        node = self.schema_nodes[index]
    TypeError: 'map' object is not subscriptable
    
    Bug: 941669
    Change-Id: I9737aa44b1f395f6efeefadc94c39a084f82ed98
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1857122
    Auto-Submit: Raul Tambre <raul@tambre.ee>
    Commit-Queue: Yann Dago <ydago@chromium.org>
    Reviewed-by: default avatarYann Dago <ydago@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#705939}
    41db909a
generate_policy_source.py 63.6 KB