setup.py: pep-8 cleanup

This commit is contained in:
Kai Huuhko 2014-04-29 12:20:33 +03:00
parent 69345c82d6
commit fdfa113926
1 changed files with 177 additions and 134 deletions

311
setup.py
View File

@ -32,11 +32,18 @@ try:
from sphinx.setup_command import BuildDoc from sphinx.setup_command import BuildDoc
except ImportError: except ImportError:
class BuildDoc(Command): class BuildDoc(Command):
description = "build documentation using sphinx, that must be installed." description = \
"build documentation using sphinx, that must be installed."
user_options = [] user_options = []
def initialize_options(self): pass
def finalize_options(self): pass def initialize_options(self):
def run(self): print("Error: sphinx not found") pass
def finalize_options(self):
pass
def run(self):
print("Error: sphinx not found")
# === pkg-config === # === pkg-config ===
@ -71,7 +78,9 @@ def pkg_config(name, require, min_vers=None):
except (OSError, subprocess.CalledProcessError): except (OSError, subprocess.CalledProcessError):
raise SystemExit("Did not find " + name + " with 'pkg-config'.") raise SystemExit("Did not find " + name + " with 'pkg-config'.")
except (AssertionError): except (AssertionError):
raise SystemExit(name+" version mismatch. Found: "+ver+" Needed: "+min_vers) raise SystemExit(
name + " version mismatch. Found: " + ver + " Needed: " + min_vers
)
# use cython or pre-generated c files # use cython or pre-generated c files
@ -84,31 +93,41 @@ if os.path.exists(os.path.join(script_path, "efl", "eo", "efl.eo.pyx")):
from Cython.Build import cythonize from Cython.Build import cythonize
import Cython.Compiler.Options import Cython.Compiler.Options
except ImportError: except ImportError:
raise SystemExit("Requires Cython >= %s (http://cython.org/)" % CYTHON_MIN_VERSION) raise SystemExit(
"Requires Cython >= %s (http://cython.org/)" % CYTHON_MIN_VERSION
)
try: try:
try: try:
assert StrictVersion(Cython.__version__) >= StrictVersion(CYTHON_MIN_VERSION) assert StrictVersion(Cython.__version__) >= \
StrictVersion(CYTHON_MIN_VERSION)
except ValueError: except ValueError:
print("Your Cython version string (%s) is weird. We'll attempt to " print(
"check that it's higher than the minimum required: %s, but this " "Your Cython version string (%s) is weird. We'll attempt to "
"is unreliable.\n" "check that it's higher than the minimum required: %s, but "
"If you run into any problems during or after installation it may " "this is unreliable.\n"
"be caused by version of Cython that's too old." % ( "If you run into any problems during or after installation it "
"may be caused by version of Cython that's too old." % (
Cython.__version__, CYTHON_MIN_VERSION Cython.__version__, CYTHON_MIN_VERSION
)
) )
assert LooseVersion(Cython.__version__) >= LooseVersion(CYTHON_MIN_VERSION) )
assert LooseVersion(Cython.__version__) >= \
LooseVersion(CYTHON_MIN_VERSION)
except AssertionError: except AssertionError:
raise SystemExit("Requires Cython >= %s (http://cython.org/)" % CYTHON_MIN_VERSION) raise SystemExit(
"Requires Cython >= %s (http://cython.org/)" % CYTHON_MIN_VERSION
)
Cython.Compiler.Options.fast_fail = True # Stop compilation on first error Cython.Compiler.Options.fast_fail = True # Stop compilation on first error
Cython.Compiler.Options.annotate = False # Generates HTML files with annotated source Cython.Compiler.Options.annotate = False # Generates HTML files with
Cython.Compiler.Options.docstrings = True # Set to False to disable docstrings # annotated source
Cython.Compiler.Options.docstrings = True # Set to False to disable
# docstrings
else: else:
module_suffix = ".c" module_suffix = ".c"
from distutils.command.build_ext import build_ext from distutils.command.build_ext import build_ext
def cythonize(modules, *args, **kwargs): def cythonize(modules, *args, **kwargs):
return modules return modules
@ -116,16 +135,24 @@ else:
class CleanGenerated(Command): class CleanGenerated(Command):
description = "Clean C and html files generated by Cython" description = "Clean C and html files generated by Cython"
user_options = [] user_options = []
def initialize_options(self): pass
def finalize_options(self): pass def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self): def run(self):
for lib in "eo", "evas", "ecore", "edje", "edje/edit", "emotion", "elementary", "utils": for lib in ("eo", "evas", "ecore", "edje", "edje/edit", "emotion",
for root, dirs, files in os.walk(os.path.join(script_path, "efl", lib)): "elementary", "utils"):
for root, dirs, files in \
os.walk(os.path.join(script_path, "efl", lib)):
for f in files: for f in files:
if f.endswith(".c") or f.endswith(".html"): if f.endswith(".c") or f.endswith(".html"):
path = os.path.join(root, f) path = os.path.join(root, f)
os.remove(path) os.remove(path)
dbus_ml_path = os.path.join(script_path, "efl", "dbus_mainloop", "dbus_mainloop.c") dbus_ml_path = os.path.join(
script_path, "efl", "dbus_mainloop", "dbus_mainloop.c")
if os.path.exists(dbus_ml_path): if os.path.exists(dbus_ml_path):
os.remove(dbus_ml_path) os.remove(dbus_ml_path)
@ -139,94 +166,100 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
# === Eina === # === Eina ===
eina_cflags, eina_libs = pkg_config('Eina', 'eina', EFL_MIN_VERSION) eina_cflags, eina_libs = pkg_config('Eina', 'eina', EFL_MIN_VERSION)
# === Eo === # === Eo ===
eo_cflags, eo_libs = pkg_config('Eo', 'eo', EFL_MIN_VERSION) eo_cflags, eo_libs = pkg_config('Eo', 'eo', EFL_MIN_VERSION)
eo_ext = Extension("eo", ["efl/eo/efl.eo"+module_suffix], eo_ext = Extension(
define_macros = [('EFL_BETA_API_SUPPORT', None)], "eo", ["efl/eo/efl.eo" + module_suffix],
include_dirs = ['include/'], define_macros=[('EFL_BETA_API_SUPPORT', None)],
extra_compile_args = eo_cflags, include_dirs=['include/'],
extra_link_args = eo_libs + eina_libs extra_compile_args=eo_cflags,
) extra_link_args=eo_libs + eina_libs
)
modules.append(eo_ext) modules.append(eo_ext)
# === Utilities === # === Utilities ===
utils_ext = [ utils_ext = [
Extension("utils.deprecated", ["efl/utils/deprecated"+module_suffix], Extension(
include_dirs = ['include/'], "utils.deprecated", ["efl/utils/deprecated" + module_suffix],
extra_compile_args = eina_cflags, include_dirs=['include/'],
extra_link_args = eina_libs extra_compile_args=eina_cflags,
), extra_link_args=eina_libs
Extension("utils.conversions", ["efl/utils/conversions"+module_suffix], ),
include_dirs = ['include/'], Extension(
extra_compile_args = eo_cflags, "utils.conversions", ["efl/utils/conversions" + module_suffix],
extra_link_args = eo_libs + eina_libs, include_dirs=['include/'],
), extra_compile_args=eo_cflags,
Extension("utils.logger", ["efl/utils/logger"+module_suffix], extra_link_args=eo_libs + eina_libs,
include_dirs = ['include/'], ),
extra_compile_args = eina_cflags, Extension(
extra_link_args = eina_libs, "utils.logger", ["efl/utils/logger" + module_suffix],
), include_dirs=['include/'],
] extra_compile_args=eina_cflags,
extra_link_args=eina_libs,
),
]
modules += utils_ext modules += utils_ext
packages.append("efl.utils") packages.append("efl.utils")
# === Evas === # === Evas ===
evas_cflags, evas_libs = pkg_config('Evas', 'evas', EFL_MIN_VERSION) evas_cflags, evas_libs = pkg_config('Evas', 'evas', EFL_MIN_VERSION)
evas_ext = Extension("evas", ["efl/evas/efl.evas"+module_suffix], evas_ext = Extension(
include_dirs = ['include/'], "evas", ["efl/evas/efl.evas" + module_suffix],
extra_compile_args = evas_cflags, include_dirs=['include/'],
extra_link_args = evas_libs + eina_libs, extra_compile_args=evas_cflags,
) extra_link_args=evas_libs + eina_libs,
)
modules.append(evas_ext) modules.append(evas_ext)
# compatibility # compatibility
packages.append("evas") packages.append("evas")
package_dirs["evas"] = "compat/evas" package_dirs["evas"] = "compat/evas"
# === Ecore === # === Ecore ===
ecore_cflags, ecore_libs = pkg_config('Ecore', 'ecore', EFL_MIN_VERSION) ecore_cflags, ecore_libs = pkg_config('Ecore', 'ecore', EFL_MIN_VERSION)
ecore_file_cflags, ecore_file_libs = pkg_config('EcoreFile', 'ecore-file', "1.8.0") ecore_file_cflags, ecore_file_libs = pkg_config(
ecore_ext = Extension("ecore", ["efl/ecore/efl.ecore"+module_suffix], 'EcoreFile', 'ecore-file', EFL_MIN_VERSION)
include_dirs = ['include/'], ecore_ext = Extension(
extra_compile_args = list(set(ecore_cflags + ecore_file_cflags)), "ecore", ["efl/ecore/efl.ecore" + module_suffix],
extra_link_args = ecore_libs + ecore_file_libs + eina_libs + evas_libs, include_dirs=['include/'],
) extra_compile_args=list(set(ecore_cflags + ecore_file_cflags)),
extra_link_args=ecore_libs + ecore_file_libs + eina_libs + evas_libs,
)
modules.append(ecore_ext) modules.append(ecore_ext)
# compatibility # compatibility
packages.append("ecore") packages.append("ecore")
package_dirs["ecore"] = "compat/ecore" package_dirs["ecore"] = "compat/ecore"
# === Ethumb === # === Ethumb ===
ethumb_cflags, ethumb_libs = pkg_config('Ethumb', 'ethumb', EFL_MIN_VERSION) ethumb_cflags, ethumb_libs = pkg_config(
ethumb_ext = Extension("ethumb", ["efl/ethumb/efl.ethumb"+module_suffix], 'Ethumb', 'ethumb', EFL_MIN_VERSION)
include_dirs = ['include/'], ethumb_ext = Extension(
extra_compile_args = ethumb_cflags, "ethumb", ["efl/ethumb/efl.ethumb" + module_suffix],
extra_link_args = ethumb_libs + eina_libs, include_dirs=['include/'],
) extra_compile_args=ethumb_cflags,
extra_link_args=ethumb_libs + eina_libs,
)
modules.append(ethumb_ext) modules.append(ethumb_ext)
ethumb_client_cflags, ethumb_client_libs = pkg_config('Ethumb_Client', 'ethumb_client', EFL_MIN_VERSION) ethumb_client_cflags, ethumb_client_libs = pkg_config(
ethumb_client_ext = Extension("ethumb_client", ["efl/ethumb/efl.ethumb_client"+module_suffix], 'Ethumb_Client', 'ethumb_client', EFL_MIN_VERSION)
include_dirs = ['include/'], ethumb_client_ext = Extension(
extra_compile_args = ethumb_client_cflags, "ethumb_client", ["efl/ethumb/efl.ethumb_client" + module_suffix],
extra_link_args = ethumb_client_libs + eina_libs, include_dirs=['include/'],
) extra_compile_args=ethumb_client_cflags,
extra_link_args=ethumb_client_libs + eina_libs,
)
modules.append(ethumb_client_ext) modules.append(ethumb_client_ext)
# === Edje === # === Edje ===
edje_cflags, edje_libs = pkg_config('Edje', 'edje', EFL_MIN_VERSION) edje_cflags, edje_libs = pkg_config('Edje', 'edje', EFL_MIN_VERSION)
edje_ext = Extension("edje", ["efl/edje/efl.edje"+module_suffix], edje_ext = Extension(
include_dirs = ['include/'], "edje", ["efl/edje/efl.edje" + module_suffix],
extra_compile_args = edje_cflags, include_dirs=['include/'],
extra_link_args = edje_libs + eina_libs + evas_libs, extra_compile_args=edje_cflags,
) extra_link_args=edje_libs + eina_libs + evas_libs,
)
modules.append(edje_ext) modules.append(edje_ext)
# compatibility # compatibility
@ -234,44 +267,46 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
package_dirs["edje"] = "compat/edje" package_dirs["edje"] = "compat/edje"
# --- Edje_Edit --- # --- Edje_Edit ---
edje_edit_ext = Extension("edje_edit", ["efl/edje/efl.edje_edit"+module_suffix], edje_edit_ext = Extension(
define_macros = [('EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT', None)], "edje_edit", ["efl/edje/efl.edje_edit" + module_suffix],
include_dirs = ['include/'], define_macros=[('EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT', None)],
extra_compile_args = edje_cflags, include_dirs=['include/'],
extra_link_args = edje_libs + eina_libs + evas_libs, extra_compile_args=edje_cflags,
) extra_link_args=edje_libs + eina_libs + evas_libs,
)
modules.append(edje_edit_ext) modules.append(edje_edit_ext)
# === Emotion === # === Emotion ===
emotion_cflags, emotion_libs = pkg_config('Emotion', 'emotion', EFL_MIN_VERSION) emotion_cflags, emotion_libs = pkg_config(
emotion_ext = Extension("emotion", ["efl/emotion/efl.emotion"+module_suffix], 'Emotion', 'emotion', EFL_MIN_VERSION)
include_dirs = ['include/'], emotion_ext = Extension(
extra_compile_args = emotion_cflags, "emotion", ["efl/emotion/efl.emotion" + module_suffix],
extra_link_args = emotion_libs + eina_libs + evas_libs, include_dirs=['include/'],
) extra_compile_args=emotion_cflags,
extra_link_args=emotion_libs +
eina_libs + evas_libs,
)
modules.append(emotion_ext) modules.append(emotion_ext)
# compatibility # compatibility
packages.append("emotion") packages.append("emotion")
package_dirs["emotion"] = "compat/emotion" package_dirs["emotion"] = "compat/emotion"
# === dbus mainloop integration === # === dbus mainloop integration ===
dbus_cflags, dbus_libs = pkg_config('DBus', 'dbus-python', "0.83.0") dbus_cflags, dbus_libs = pkg_config('DBus', 'dbus-python', "0.83.0")
dbus_ml_ext = Extension("dbus_mainloop", dbus_ml_ext = Extension(
["efl/dbus_mainloop/dbus_mainloop"+module_suffix, "dbus_mainloop",
"efl/dbus_mainloop/e_dbus.c"], ["efl/dbus_mainloop/dbus_mainloop" + module_suffix,
extra_compile_args = list(set(dbus_cflags + ecore_cflags)), "efl/dbus_mainloop/e_dbus.c"],
extra_link_args = dbus_libs + ecore_libs, extra_compile_args=list(set(dbus_cflags + ecore_cflags)),
) extra_link_args=dbus_libs + ecore_libs,
)
modules.append(dbus_ml_ext) modules.append(dbus_ml_ext)
# compatibility # compatibility
packages.append("e_dbus") packages.append("e_dbus")
package_dirs["e_dbus"] = "compat/e_dbus" package_dirs["e_dbus"] = "compat/e_dbus"
# === Elementary === # === Elementary ===
elm_mods = ( elm_mods = (
#"access", #"access",
@ -347,14 +382,16 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
"window", "window",
) )
elm_cflags, elm_libs = pkg_config('Elementary', 'elementary', ELM_MIN_VERSION) elm_cflags, elm_libs = pkg_config(
'Elementary', 'elementary', ELM_MIN_VERSION)
for m in elm_mods: for m in elm_mods:
e = Extension("elementary." + m, e = Extension(
["efl/elementary/" + m + module_suffix], "elementary." + m,
include_dirs = ["include/"], ["efl/elementary/" + m + module_suffix],
extra_compile_args = elm_cflags, include_dirs=["include/"],
extra_link_args = elm_libs + eina_libs + evas_libs, extra_compile_args=elm_cflags,
) extra_link_args=elm_libs + eina_libs + evas_libs,
)
modules.append(e) modules.append(e)
packages.append("efl.elementary") packages.append("efl.elementary")
@ -365,37 +402,43 @@ if set(("build", "build_ext", "install", "bdist", "sdist")) & set(sys.argv):
setup( setup(
name = "python-efl", name="python-efl",
fullname = "Python bindings for Enlightenment Foundation Libraries", fullname="Python bindings for Enlightenment Foundation Libraries",
description = "Python bindings for Enlightenment Foundation Libraries", description="Python bindings for Enlightenment Foundation Libraries",
version = RELEASE, version=RELEASE,
author = "Gustavo Sverzut Barbieri, Simon Busch, Boris 'billiob' Faure, Davide Andreoli, Fabiano Fidêncio, Bruno Dilly, Tiago Falcão, Joost Albers, Kai Huuhko, Ulisses Furquim", author=(
author_email = "dave@gurumeditation.it, kai.huuhko@gmail.com", "Gustavo Sverzut Barbieri, Simon Busch, Boris 'billiob' Faure, "
maintainer = "Kai Huuhko, Davide Andreoli", "Davide Andreoli, Fabiano Fidêncio, Bruno Dilly, Tiago Falcão, "
maintainer_email = "kai.huuhko@gmail.com, dave@gurumeditation.it", "Joost Albers, Kai Huuhko, Ulisses Furquim"
contact = "Enlightenment developer mailing list", ),
contact_email = "enlightenment-devel@lists.sourceforge.net", author_email="dave@gurumeditation.it, kai.huuhko@gmail.com",
url = "http://www.enlightenment.org", maintainer="Kai Huuhko, Davide Andreoli",
license = "GNU Lesser General Public License (LGPL)", maintainer_email="kai.huuhko@gmail.com, dave@gurumeditation.it",
cmdclass = { contact="Enlightenment developer mailing list",
contact_email="enlightenment-devel@lists.sourceforge.net",
url="http://www.enlightenment.org",
license="GNU Lesser General Public License (LGPL)",
cmdclass={
'build_ext': build_ext, 'build_ext': build_ext,
'build_doc': BuildDoc, 'build_doc': BuildDoc,
'clean_generated_files': CleanGenerated 'clean_generated_files': CleanGenerated
}, },
command_options = { command_options={
'build_doc': { 'build_doc': {
'version': ('setup.py', VERSION), 'version': ('setup.py', VERSION),
'release': ('setup.py', RELEASE) 'release': ('setup.py', RELEASE)
} }
}, },
package_dir = package_dirs, package_dir=package_dirs,
packages = packages, packages=packages,
ext_package = "efl", # The prefix for ext modules/packages ext_package="efl", # The prefix for ext modules/packages
ext_modules = cythonize(modules, include_path=["include"], ext_modules=cythonize(
compiler_directives={ modules,
#"c_string_type": "unicode", include_path=["include"],
#"c_string_encoding": "utf-8", compiler_directives={
"embedsignature": True, #"c_string_type": "unicode",
} #"c_string_encoding": "utf-8",
), "embedsignature": True,
}
),
) )