graph-depends.py: support python3
PATCH 1/1 graph-depends.py: support python3
This patch is the result of 2to3.
In addition, universal_newlines=True is added to the Popen calls. In python3, this makes sure that the output is decoded so that we get a string instead of a buffer object.
--- support/scripts/graph-depends | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
support/scripts/graph-depends +12 -12
@@ -82,7 +82,7 @@ allpkgs = [] def get_targets(): sys.stderr.write("Getting targets\n") cmd = ["make", "-s", "show-targets"] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) output = p.communicate()[0].strip() if p.returncode != 0: return None
@@ -98,7 +98,7 @@ def get_depends(pkgs): cmd = ["make", "-s" ] for pkg in pkgs: cmd.append("%s-show-depends" % pkg) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) output = p.communicate()[0] if p.returncode != 0: sys.stderr.write("Error getting dependencies %s\n" % pkgs)
@@ -203,7 +203,7 @@ elif mode == MODE_PKG: # Make the dependencies a dictionnary { 'pkg':[dep1, dep2, ...] } dict_deps = {} for dep in dependencies: - if not dict_deps.has_key(dep[0]): + if dep[0] not in dict_deps: dict_deps[dep[0]] = [] dict_deps[dep[0]].append(dep[1])
@@ -211,7 +211,7 @@ for dep in dependencies: # transitive) of pkg2, dependencies being listed in the deps # dictionary. Returns False otherwise. def is_dep(pkg,pkg2,deps): - if deps.has_key(pkg2): + if pkg2 in deps: for p in deps[pkg2]: if pkg == p: return True
@@ -248,10 +248,10 @@ def remove_toolchain_deps(pkg,deps): # This functions trims down the dependency list of all packages. # It applies in sequence all the dependency-elimination methods. def remove_extra_deps(deps): - for pkg in deps.keys(): + for pkg in list(deps.keys()): if not pkg == 'all': deps[pkg] = remove_toolchain_deps(pkg,deps) - for pkg in deps.keys(): + for pkg in list(deps.keys()): if not transitive or pkg == 'all': deps[pkg] = remove_transitive_deps(pkg,deps) return deps
@@ -274,8 +274,8 @@ def print_attrs(pkg): color = host_colour else: color = target_colour - print "%s [label = \"%s\"]" % (name, label) - print "%s [color=%s,style=filled]" % (name, color) + print("%s [label = \"%s\"]" % (name, label)) + print("%s [color=%s,style=filled]" % (name, color)) # Print the dependency graph of a package def print_pkg_deps(depth, pkg):
@@ -283,17 +283,17 @@ def print_pkg_deps(depth, pkg): return done_deps.append(pkg) print_attrs(pkg) - if not dict_deps.has_key(pkg): + if pkg not in dict_deps: return if max_depth == 0 or depth < max_depth: for d in dict_deps[pkg]: - print "%s -> %s" % (pkg_node_name(pkg), pkg_node_name(d)) + print("%s -> %s" % (pkg_node_name(pkg), pkg_node_name(d))) print_pkg_deps(depth+1, d) # Start printing the graph data -print "digraph G {" +print("digraph G {") done_deps = [] print_pkg_deps(0, rootpkg) -print "}" +print("}")
Signature · 1 line
2.0.0
PATCH 1/1 graph-depends.py: support python3
But there's also support/scripts/graph-build-time and support/scripts/xorg-release. There are some calls to the Python executable in docs/manual as well.
Vivien
----- Mail original -----
Quoted 115 lines
De: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>
?: buildroot at buildroot.org
Cc: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>, "Vivien Didelot" <[email protected]> Envoy?: Vendredi 20 Juin 2014 16:34:07
Objet: [PATCH]graph-depends.py: support python3This patch is the result of 2to3.
In addition, universal_newlines=True is added to the Popen calls. In python3, this makes sure that the output is decoded so that we get a string instead of a buffer object.
Cc Vivien Didelot <[email protected]>--- support/scripts/graph-depends | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)support/scripts/graph-depends +1
-1@@ -82,7 +82,7 @@ allpkgs = [] def get_targets(): sys.stderr.write("Getting targets\n") cmd = ["make", "-s", "show-targets"] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) output = p.communicate()[0].strip()if p.returncode != 0: return Nonesupport/scripts/graph-depends +1
-1@@ -98,7 +98,7 @@ def get_depends(pkgs): cmd = ["make", "-s" ] for pkg in pkgs: cmd.append("%s-show-depends" % pkg) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) output = p.communicate()[0]if p.returncode != 0:
sys.stderr.write("Error getting dependencies %s\n" % pkgs)support/scripts/graph-depends +10
-11@@ -203,7 +203,7 @@ elif mode == MODE_PKG: # Make the dependencies a dictionnary { 'pkg':[dep1, dep2, ...] } dict_deps = {} for dep in dependencies: - if not dict_deps.has_key(dep[0]): + if dep[0] not in dict_deps: dict_deps[dep[0]] = [] dict_deps[dep[0]].append(dep[1])@@ -211,7 +211,7 @@ for dep in dependencies: # transitive) of pkg2, dependencies being listed in the deps # dictionary. Returns False otherwise. def is_dep(pkg,pkg2,deps): - if deps.has_key(pkg2): + if pkg2 in deps: for p in deps[pkg2]: if pkg == p: return True@@ -248,10 +248,10 @@ def remove_toolchain_deps(pkg,deps): # This functions trims down the dependency list of all packages. # It applies in sequence all the dependency-elimination methods. def remove_extra_deps(deps): - for pkg in deps.keys(): + for pkg in list(deps.keys()): if not pkg == 'all': deps[pkg] = remove_toolchain_deps(pkg,deps) - for pkg in deps.keys(): + for pkg in list(deps.keys()): if not transitive or pkg == 'all': deps[pkg] = remove_transitive_deps(pkg,deps) return deps@@ -274,8 +274,8 @@ def print_attrs(pkg): color = host_colour else: color = target_colour - print "%s [label = \"%s\"]" % (name, label) - print "%s [color=%s,style=filled]" % (name, color) + print("%s [label = \"%s\"]" % (name, label)) + print("%s [color=%s,style=filled]" % (name, color)) # Print the dependency graph of a package def print_pkg_deps(depth, pkg):@@ -283,17 +283,17 @@ def print_pkg_deps(depth, pkg): return done_deps.append(pkg) print_attrs(pkg) - if not dict_deps.has_key(pkg): + if pkg not in dict_deps: return if max_depth == 0 or depth < max_depth: for d in dict_deps[pkg]: - print "%s -> %s" % (pkg_node_name(pkg), pkg_node_name(d)) + print("%s -> %s" % (pkg_node_name(pkg), pkg_node_name(d))) print_pkg_deps(depth+1, d) # Start printing the graph data -print "digraph G {" +print("digraph G {") done_deps = [] print_pkg_deps(0, rootpkg) -print "}" +print("}") --2.0.0
PATCH 1/1 graph-depends.py: support python3
Quoted 4 lines · Vivien Didelot
Reviewed-by Vivien Didelot <[email protected]>But there's also support/scripts/graph-build-time and support/scripts/xorg-release. There are some calls to the Python executable in docs/manual as well.
True, but let's take it one step at a time :-)
Regards,
Arnout
BTW, list policy says that you shouldn't top-post. So you would put your
Reviewed-by tag below my Sob, i.e...
Quoted 18 lines
Vivien
----- Mail original -----
Quoted 14 lines
De: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>
?: buildroot at buildroot.org
Cc: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>, "Vivien Didelot" <[email protected]> Envoy?: Vendredi 20 Juin 2014 16:34:07
Objet: [PATCH]graph-depends.py: support python3This patch is the result of 2to3.
In addition, universal_newlines=True is added to the Popen calls. In python3, this makes sure that the output is decoded so that we get a string instead of a buffer object.
Cc Vivien Didelot <[email protected]>
... here
Also, for a long mail, remove the irrelevant part of the quotation, e.g. like this:
Quoted 3 lines
Quoted 3 lines
--- support/scripts/graph-depends | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
[snip]
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
Thomas Petazzoni
AppliedPATCH 1/1 graph-depends.py: support python3
In reply to Arnout Vandecappelle (Essensium/Mind)Dear Arnout Vandecappelle (Essensium/Mind),
Quoted 11 lines · Arnout Vandecappelle (Essensium/Mind)
This patch is the result of 2to3.
In addition, universal_newlines=True is added to the Popen calls. In python3, this makes sure that the output is decoded so that we get a string instead of a buffer object.
Cc Vivien Didelot <[email protected]>--- support/scripts/graph-depends | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
Applied, thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com