[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: "gen-make.py --debug" with Python 3 fails with TypeError

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Thu, 23 Apr 2020 13:30:50 +0200

On Thu, Apr 23, 2020 at 12:17 AM Yasuhito FUTATSUKI <futatuki_at_poem.co.jp> wrote:
>
> Let's take easier one to analyze :)
>
> On 2020/04/23 6:08, Johan Corveleyn wrote:
> > On Wed, Apr 22, 2020 at 10:09 PM Daniel Shahaf <d.s_at_daniel.shahaf.name>
> > wrote:
> >
> >> Johan Corveleyn wrote on Wed, 22 Apr 2020 19:16 +00:00:
> >>> Running "gen-make.py --debug" with Python 3 fails with:
>
> > Thanks, but now it fails earlier with this error (same with Yasuhito's
> > attempt, which is equivalent I guess):
>
> Yes, they are equivalent.
>
> > [[[
> > python gen-make.py --debug
> > --with-httpd=C:\research\svn\dev\deps\httpd-2.4.43
> > --with-serf=C:\research\svn\dev\deps\serf-1.3.9
> > --with-openssl=C:\research\svn\dev\deps\openssl-1.1.1f
> > --with-sqlite=C:\research\svn\dev\deps\sqlite-amalgamation-3.31.1.0
> > --with-zlib=C:\research\svn\dev\deps\zlib-1.2.11
> > --with-swig=C:\research\swigwin-3.0.12 --with-py3c=C:\research\py3c
> > --with-jdk="C:\Program Files (x86)\AdoptOpenJDK\jdk-11.0.6.10-hotspot"
> > --with-junit=C:\research\svn\dev\deps\junit-4.12\junit.jar
> > --vsnet-version=2019 -t vcproj 2>&1 | tee log.gen-make
> > Generating for Visual Studio 2019
> >
> > Found apr 1.6.5
> > Found apr-util 1.6.1
> > Found apr_memcache 1.6.1
> > Found expat 2.2.9
> > Found httpd 2.4.43
> > Found java-sdk 11.0.6
> > Found mod_dav 2.4.43
> > Found openssl 1.1.1f
> > Found perl 5.30.2
> > Found py3c 1.0
> > Found python 3.7.7
> > Found ruby 2.7.0
> > Found serf 1.3.9
> > Found sqlite 3.31.1
> > Found swig 3.0.12
> > Found zlib 1.2.11
> > Using bundled lz4 1.7.5
> > Using bundled utf8proc 2.1.0
> > Traceback (most recent call last):
> > File "gen-make.py", line 327, in <module>
> > main(conf, gentype, skip_depends=skip, other_options=rest.list)
> > File "gen-make.py", line 74, in main
> > sorted_targets.sort(key = lambda dep: dep.filename)
> > File "gen-make.py", line 74, in <lambda>
> > sorted_targets.sort(key = lambda dep: dep.filename)
> > AttributeError: 'str' object has no attribute 'filename'
> > ]]]
>
> With previous errorand this, earch element of sorted_targets
> can be str or ObjectFile objects, I assume. ObjectFile has
> __str__ method, then it can be ...
>
> [[[
> Index: gen-make.py
> ===================================================================
> --- gen-make.py (revision 1872433)
> +++ gen-make.py (working copy)
> @@ -70,7 +70,7 @@
>
> if ('--debug', '') in other_options:
> for dep_type, target_dict in generator.graph.deps.items():
> - sorted_targets = list(target_dict.keys()); sorted_targets.sort()
> + sorted_targets = sorted(target_dict.keys(), key=str)
> for target in sorted_targets:
> print(dep_type + ": " + _objinfo(target))
> for source in target_dict[target]:
> ]]]

Yes, that works :-), both with Py 3.8 and with Py 2.7.
+1 to commit and propose for backport to 1.14.x.

Thanks,

-- 
Johan
Received on 2020-04-23 13:31:11 CEST

This is an archived mail posted to the Subversion Dev mailing list.