本文整理汇总了Python中nuitka.Utils类的典型用法代码示例。如果您正苦于以下问题:Python Utils类的具体用法?Python Utils怎么用?Python Utils使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Utils类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: checkPluginPath
def checkPluginPath(plugin_filename, module_package):
debug(
"Checking top level plugin path %s %s",
plugin_filename,
module_package
)
plugin_info = considerFilename(
module_package = module_package,
module_filename = plugin_filename
)
if plugin_info is not None:
# File or package makes a difference, handle that
if Utils.isFile(plugin_info[0]) or \
Importing.isPackageDir(plugin_info[0]):
_checkPluginPath(plugin_filename, module_package)
elif Utils.isDir(plugin_info[0]):
for sub_path, sub_filename in Utils.listDir(plugin_info[0]):
assert sub_filename != "__init__.py"
if Importing.isPackageDir(sub_path) or \
sub_path.endswith(".py"):
_checkPluginPath(sub_path, None)
else:
warning("Failed to include module from '%s'.", plugin_info[0])
else:
warning("Failed to recurse to directory '%s'.", plugin_filename)
示例2: considerImplicitImports
def considerImplicitImports(self, signal_change):
for module_name, module_package in self.getImplicitImports():
_module_package, _module_name, module_filename = \
Importing.findModule(
source_ref = self.source_ref,
module_name = module_name,
parent_package = module_package,
level = -1,
warn = True
)
if module_filename is None:
sys.exit(
"Error, implicit module '%s' expected by '%s' not found" % (
module_name,
self.getFullName()
)
)
elif Utils.isDir(module_filename):
module_kind = "py"
elif module_filename.endswith(".py"):
module_kind = "py"
elif module_filename.endswith(".so"):
module_kind = "shlib"
elif module_filename.endswith(".pyd"):
module_kind = "shlib"
else:
assert False, module_filename
from nuitka.tree import Recursion
decision, reason = Recursion.decideRecursion(
module_filename = module_filename,
module_name = module_name,
module_package = module_package,
module_kind = module_kind
)
assert decision or reason == "Module is frozen."
if decision:
module_relpath = Utils.relpath(module_filename)
imported_module, added_flag = Recursion.recurseTo(
module_package = module_package,
module_filename = module_filename,
module_relpath = module_relpath,
module_kind = module_kind,
reason = reason
)
from nuitka.ModuleRegistry import addUsedModule
addUsedModule(imported_module)
if added_flag:
signal_change(
"new_code",
imported_module.getSourceReference(),
"Recursed to module."
)
示例3: runScons
def runScons( options, quiet ):
# For the scons file to find the static C++ files and include path. The scons file is
# unable to use __file__ for the task.
os.environ[ "NUITKA_SCONS" ] = getSconsDataPath()
if os.name == "nt":
# On Windows this Scons variable must be set by us.
os.environ[ "SCONS_LIB_DIR" ] = Utils.joinpath( getSconsInlinePath(), "lib", "scons-2.0.1" )
# Also, for MinGW we can avoid the user having to add the path if he used the
# default path or installed it on the same drive by appending to the PATH variable
# before executing scons.
os.environ[ "PATH" ] += r";\MinGW\bin;C:\MinGW\bin"
scons_command = """%(python)s %(binary)s %(quiet)s -f %(scons_file)s --jobs %(job_limit)d %(options)s""" % {
"python" : sys.executable if Utils.python_version < 300 else "python",
"binary" : getSconsBinaryPath(),
"quiet" : "--quiet" if quiet else "",
"scons_file" : Utils.joinpath( getSconsDataPath(), "SingleExe.scons" ),
"job_limit" : Options.getJobLimit(),
"options" : " ".join( "%s=%s" % ( key, value ) for key, value in options.items() )
}
if Options.isShowScons():
Tracing.printLine( "Scons command:", scons_command )
return 0 == os.system( scons_command )
示例4: detectBinaryDLLs
def detectBinaryDLLs(binary_filename, package_name):
""" Detect the DLLs used by a binary.
Using ldd (Linux), depends.exe (Windows), or otool (MacOS) the list
of used DLLs is retrieved.
"""
if Utils.getOS() in ("Linux", "NetBSD"):
# TODO: FreeBSD may work the same way, not tested.
return _detectBinaryPathDLLsLinuxBSD(
binary_filename = binary_filename
)
elif Utils.getOS() == "Windows":
return _detectBinaryPathDLLsWindows(
binary_filename = binary_filename,
package_name = package_name
)
elif Utils.getOS() == "Darwin":
return _detectBinaryPathDLLsLinuxBSD(
binary_filename = binary_filename
)
else:
# Support your platform above.
assert False, Utils.getOS()
示例5: getVariableCodeName
def getVariableCodeName(in_context, variable):
if in_context:
# Closure case:
return "closure_" + Utils.encodeNonAscii(variable.getName())
elif variable.isParameterVariable():
return "par_" + Utils.encodeNonAscii(variable.getName())
elif variable.isTempVariable():
return "tmp_" + Utils.encodeNonAscii(variable.getName())
else:
return "var_" + Utils.encodeNonAscii(variable.getName())
示例6: getSconsBinaryCall
def getSconsBinaryCall():
""" Return a way to execute Scons.
Using potentially inline copy if no system Scons is available
or if we are on Windows.
"""
if Utils.isFile("/usr/bin/scons"):
return ["/usr/bin/scons"]
else:
return [getPython2ExePath(), Utils.joinpath(getSconsInlinePath(), "bin", "scons.py")]
示例7: __init__
def __init__(self, *args):
QtGui.QDialog.__init__(self, *args)
ui_dir = Utils.dirname(__file__)
ui_filename = Utils.joinpath(ui_dir, "dialogs", "InspectPythonTree.ui")
uic.loadUi(ui_filename, self)
self.treeview_nodes.setSelectionMode(self.treeview_nodes.SingleSelection)
self.displayed = None
self.source_code = None
self.model = None
self.moving = None
示例8: runScons
def runScons(options, quiet):
# For the scons file to find the static C++ files and include path. The
# scons file is unable to use __file__ for the task.
os.environ["NUITKA_SCONS"] = getSconsDataPath()
if Utils.getOS() == "Windows":
# On Windows this Scons variable must be set by us.
os.environ["SCONS_LIB_DIR"] = Utils.joinpath(
getSconsInlinePath(),
"lib",
"scons-2.3.0"
)
# Also, for MinGW we can avoid the user having to add the path if he
# used the default path or installed it on the same drive by appending
# to the PATH variable before executing scons.
os.environ["PATH"] += r";\MinGW\bin;C:\MinGW\bin"
scons_command = getSconsBinaryCall()
if quiet:
scons_command.append("--quiet")
scons_command += [
# The scons file
"-f",
Utils.joinpath(getSconsDataPath(), "SingleExe.scons"),
# Parallel compilation.
"--jobs",
str(Options.getJobLimit()),
# Do not warn about deprecations of Scons
"--warn=no-deprecated",
# Don't load "site_scons" at all.
"--no-site-dir",
]
if Options.isShowScons():
scons_command.append("--debug=explain")
# Option values to provide to scons.
for key, value in options.items():
scons_command += [key + "=" + value]
if Options.isShowScons():
Tracing.printLine("Scons command:", " ".join(scons_command))
return 0 == subprocess.call(scons_command)
示例9: optimize
def optimize():
while True:
finished = True
ModuleRegistry.startTraversal()
while True:
current_module = ModuleRegistry.nextModule()
if current_module is None:
break
if _progress:
printLine(
"""\
Optimizing module '{module_name}', {remaining:d} more modules to go \
after that. Memory usage {memory}:""".format(
module_name = current_module.getFullName(),
remaining = ModuleRegistry.remainingCount(),
memory = Utils.getHumanReadableProcessMemoryUsage()
)
)
if current_module.isPythonShlibModule():
optimizeShlibModule(current_module)
else:
changed = optimizePythonModule(current_module)
if changed:
finished = False
if finished:
break
示例10: removeSharedLibraryRPATH
def removeSharedLibraryRPATH(filename):
process = subprocess.Popen(
["readelf", "-d", filename],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = False
)
stdout, _stderr = process.communicate()
retcode = process.poll()
assert retcode == 0, filename
for line in stdout.split(b"\n"):
if b"RPATH" in line:
if Options.isShowInclusion():
info("Removing 'RPATH' setting from '%s'.", filename)
if not Utils.isExecutableCommand("chrpath"):
sys.exit(
"""\
Error, needs 'chrpath' on your system, due to 'RPATH' settings in used shared
libraries that need to be removed."""
)
process = subprocess.Popen(
["chrpath", "-d", filename],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = False
)
process.communicate()
retcode = process.poll()
assert retcode == 0, filename
示例11: attemptRecursion
def attemptRecursion( self, module ):
if not Options.shallMakeModule():
# Make sure the package is recursed to.
module_package = module.getPackage()
if module_package is not None:
package_package, _package_module_name, package_filename = Importing.findModule(
source_ref = module.getSourceReference(),
module_name = module_package,
parent_package = None,
level = 1
)
imported_module, added_flag = Recursion.recurseTo(
module_package = package_package,
module_filename = package_filename,
module_relpath = Utils.relpath( package_filename )
)
if added_flag:
self.signalChange(
"new_code",
imported_module.getSourceReference(),
"Recursed to module package."
)
示例12: detectEarlyImports
def detectEarlyImports():
if Options.freezeAllStdlib():
stdlib_modules = set()
# Scan the standard library paths (multiple in case of virtualenv.
for stdlib_dir in getStandardLibraryPaths():
for module_name in scanStandardLibraryPath(stdlib_dir):
stdlib_modules.add(module_name)
import_code = 'imports = ' + repr(sorted(stdlib_modules)) + '\n'\
'for imp in imports:\n' \
' try:\n' \
' __import__(imp)\n' \
' except ImportError:\n' \
' pass\n'
else:
# TODO: Should recursively include all of encodings module.
import_code = "import encodings.utf_8;import encodings.ascii;import encodings.idna;"
if Utils.getOS() == "Windows":
import_code += "import encodings.mbcs;import encodings.cp437;"
# String method hex depends on it.
if Utils.python_version < 300:
import_code += "import encodings.hex_codec;"
import_code += "import locale;"
result = _detectImports(import_code, False)
debug("Finished detecting early imports.")
return result
示例13: _getPython2ExePathWindows
def _getPython2ExePathWindows():
# Shortcuts for the default installation directories, to avoid going to
# registry at all.
if os.path.isfile(r"c:\Python27\python.exe"):
return r"c:\Python27\python.exe"
elif os.path.isfile(r"c:\Python26\python.exe"):
return r"c:\Python26\python.exe"
# Windows only code, pylint: disable=E0602,F0401
try:
import _winreg as winreg
except ImportError:
import winreg # lint:ok
for search in ("2.7", "2.6"):
for arch_key in 0, winreg.KEY_WOW64_32KEY, winreg.KEY_WOW64_64KEY:
try:
key = winreg.OpenKey(
winreg.HKEY_LOCAL_MACHINE,
r"SOFTWARE\Python\PythonCore\%s\InstallPath" % search,
0,
winreg.KEY_READ | arch_key,
)
return Utils.joinpath(winreg.QueryValue(key, ""), "python.exe")
except WindowsError: # lint:ok
pass
示例14: buildModuleTree
def buildModuleTree(filename, package, is_top, is_main):
module, source_ref, source_filename = decideModuleTree(
filename = filename,
package = package,
is_top = is_top,
is_main = is_main,
is_shlib = False
)
addImportedModule(
module_relpath = Utils.relpath(filename),
imported_module = module
)
# If there is source code associated (not the case for namespace packages of
# Python3.3 or higher, then read it.
if source_filename is not None:
createModuleTree(
module = module,
source_ref = source_ref,
source_filename = source_filename,
is_main = is_main
)
return module
示例15: runScons
def runScons(options, quiet):
# For the scons file to find the static C++ files and include path. The
# scons file is unable to use __file__ for the task.
os.environ["NUITKA_SCONS"] = getSconsDataPath()
if Utils.getOS() == "Windows":
# On Windows this Scons variable must be set by us.
os.environ["SCONS_LIB_DIR"] = Utils.joinpath(
getSconsInlinePath(),
"lib",
"scons-2.3.2"
)
scons_command = getSconsBinaryCall()
if quiet:
scons_command.append("--quiet")
scons_command += [
# The scons file
"-f",
Utils.joinpath(getSconsDataPath(), "SingleExe.scons"),
# Parallel compilation.
"--jobs",
str(Options.getJobLimit()),
# Do not warn about deprecations of Scons
"--warn=no-deprecated",
# Don't load "site_scons" at all.
"--no-site-dir",
]
if Options.isShowScons():
scons_command.append("--debug=explain")
# Option values to provide to scons.
for key, value in options.items():
scons_command += [key + "=" + value]
if Options.isShowScons():
Tracing.printLine("Scons command:", " ".join(scons_command))
return 0 == subprocess.call(scons_command, shell = False)