Modify generate_style.py for Python3 compatibility#58
Merged
jmckenna merged 9 commits intoMapServer:masterfrom Aug 5, 2020
Merged
Modify generate_style.py for Python3 compatibility#58jmckenna merged 9 commits intoMapServer:masterfrom
jmckenna merged 9 commits intoMapServer:masterfrom
Conversation
* optparse is deprecated
* use update() method rather than using a list copy intermediary * the main dictionary could be copied first but it isn't used for anything else
* supported by Python2 and 3 * not as efficient as an iterable but cursory `time -v` tests show no difference in usr/system time or maximum RSS: presumably the style dictionary would have to grow monumentally before we could see a difference
* `vars` is a Python builtin function: dict renamed to 'style' * 'styles' dictionary renamed to 'namedstyles' to avoid confusion
Contributor
|
Note: I've updated |
Collaborator
|
I am ok to merge this PR (almost 1 year after, sorry) but I am not a Python dev. |
yjacolin
approved these changes
Mar 10, 2020
Member
|
I think Python3 compatibility is important - is this PR ok to merge? (it's not clear to me how this affects #68 as both add v3 support) |
Member
|
thanks @tacatac !! |
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale
On Archlinux
pythonpoints to Python3 but I can't be bothered tosed -i -e 's/python/python2/g' Makefile generate_style.py.Also I need
generate_style.pyto work on a system wherepythonis Python2.Modifications
Some are for deprecated or removed functions (optparse, iteritems, has_key).
Some are recommendations from PyLint (although I did not start on the spacing and indentation warnings!):
varsrenaming, isinstance, unusedsysimport.printcould be modified without needing__future__.Testing
I've not done much except checksumming the resulting mapfiles to make sure I generated the same one after each change.
As far performance is concerned (observed with
time -v makeon my system) there is no significant difference. A full run takes about 2 seconds (90% usr), with max RSS 17.5MiB on Python2, with or without these changes.It runs at 1 second, same RSS with Python3.