Initial Python 3 port
Many things work, some don't. Notably, genPOI doesn't work, and there's some signedness comparison stuff going on in the C extension. This also completely drops support for Python 2, as maintaining a C extension for both Python 2 and 3 is a pain and not worth it for the 9 months that Python 2 is still going to be supported upstream. The documentation needs to be adjusted as well. All of the few tests we have pass, and rendering a map works, both with a configuration file and without. We can also use optimizeimages. Concerns #1528.
This commit is contained in:
@@ -2,13 +2,15 @@
|
||||
# Code to check to make sure c_overviewer is built and working
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import os.path
|
||||
import os
|
||||
import platform
|
||||
import traceback
|
||||
import sys
|
||||
|
||||
import util
|
||||
from . import util
|
||||
|
||||
def check_c_overviewer():
|
||||
"""Check to make sure c_overviewer works and is up-to-date. Prints
|
||||
@@ -18,29 +20,28 @@ def check_c_overviewer():
|
||||
root_dir = util.get_program_path()
|
||||
# make sure the c_overviewer extension is available
|
||||
try:
|
||||
import c_overviewer
|
||||
from . import c_overviewer
|
||||
except ImportError:
|
||||
if os.environ.get("OVERVIEWER_DEBUG_IMPORT") == "1":
|
||||
traceback.print_exc()
|
||||
## if this is a frozen windows package, the following error messages about
|
||||
## building the c_overviewer extension are not appropriate
|
||||
if hasattr(sys, "frozen") and platform.system() == 'Windows':
|
||||
print "Something has gone wrong importing the c_overviewer extension. Please"
|
||||
print "make sure the 2008 and 2010 redistributable packages from Microsoft"
|
||||
print "are installed."
|
||||
print("Something has gone wrong importing the c_overviewer extension. Please make sure "
|
||||
"the 2008 and 2010 redistributable packages from Microsoft are installed.")
|
||||
return 1
|
||||
|
||||
## try to find the build extension
|
||||
ext = os.path.join(root_dir, "overviewer_core", "c_overviewer.%s" % ("pyd" if platform.system() == "Windows" else "so"))
|
||||
if os.path.exists(ext):
|
||||
traceback.print_exc()
|
||||
print ""
|
||||
print "Something has gone wrong importing the c_overviewer extension. Please"
|
||||
print "make sure it is up-to-date (clean and rebuild)"
|
||||
print()
|
||||
print("Something has gone wrong importing the c_overviewer extension. Please make sure "
|
||||
"it is up-to-date. (clean and rebuild)")
|
||||
return 1
|
||||
|
||||
print "You need to compile the c_overviewer module to run Minecraft Overviewer."
|
||||
print "Run `python setup.py build`, or see the README for details."
|
||||
print("You need to compile the c_overviewer module to run Minecraft Overviewer.")
|
||||
print("Run `python setup.py build`, or see the README for details.")
|
||||
return 1
|
||||
|
||||
#
|
||||
@@ -54,14 +55,15 @@ def check_c_overviewer():
|
||||
if os.path.exists(os.path.join(root_dir, "overviewer_core", "src", "overviewer.h")):
|
||||
with open(os.path.join(root_dir, "overviewer_core", "src", "overviewer.h")) as f:
|
||||
lines = f.readlines()
|
||||
lines = filter(lambda x: x.startswith("#define OVERVIEWER_EXTENSION_VERSION"), lines)
|
||||
lines = list(filter(lambda x: x.startswith("#define OVERVIEWER_EXTENSION_VERSION"),
|
||||
lines))
|
||||
if lines:
|
||||
l = lines[0]
|
||||
if int(l.split()[2].strip()) != c_overviewer.extension_version():
|
||||
print "Please rebuild your c_overviewer module. It is out of date!"
|
||||
print("Please rebuild your c_overviewer module. It is out of date!")
|
||||
return 1
|
||||
else:
|
||||
print "Please rebuild your c_overviewer module. It is out of date!"
|
||||
print("Please rebuild your c_overviewer module. It is out of date!")
|
||||
return 1
|
||||
|
||||
# all good!
|
||||
|
||||
Reference in New Issue
Block a user