本文整理汇总了Python中code.co_filename方法的典型用法代码示例。如果您正苦于以下问题:Python code.co_filename方法的具体用法?Python code.co_filename怎么用?Python code.co_filename使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类code
的用法示例。
在下文中一共展示了code.co_filename方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _runmodule
# 需要导入模块: import code [as 别名]
# 或者: from code import co_filename [as 别名]
def _runmodule(self, module_name):
self._wait_for_mainpyfile = True
self._user_requested_quit = False
import runpy
mod_name, mod_spec, code = runpy._get_module_details(module_name)
self.mainpyfile = self.canonic(code.co_filename)
import __main__
__main__.__dict__.clear()
__main__.__dict__.update({
"__name__": "__main__",
"__file__": self.mainpyfile,
"__package__": mod_spec.parent,
"__loader__": mod_spec.loader,
"__spec__": mod_spec,
"__builtins__": __builtins__,
})
self.run(code)
示例2: get_generic_cmd
# 需要导入模块: import code [as 别名]
# 或者: from code import co_filename [as 别名]
def get_generic_cmd(obj, ui, cliclass=GenericCLI, aliases=None, gbl=None):
"""get a GenericCLI (or other) command set wrapping any class instance
object. The wrapped objects public methods have CLI command counterparts
automatically created."""
import new
from methodholder import MethodHolder
cmd = cliclass(ui, aliases)
if gbl is None:
gbl = globals()
hashfilter = {}
for name in _get_methodnames(obj):
if hasattr(cmd, name):
continue # don't override already defined methods
# all this mess does is introspect the object methods and map it to a CLI
# object method of the same name, with a docstring showing the attributes
# and their default values, and the actual code mirroring the
# _generic_call method in the GenericCLI class.
else:
obj_meth = getattr(obj, name)
if id(obj_meth.im_func) in hashfilter: # filter out aliases
continue
else:
hashfilter[id(obj_meth.im_func)] = True
mh = MethodHolder(obj_meth)
doc = "%s *\n%s" % (mh, obj_meth.__doc__ or "")
code = cliclass._generic_call.func_code
nc = new.code(code.co_argcount, code.co_nlocals, code.co_stacksize,
code.co_flags, code.co_code,
(doc,)+code.co_consts[1:], # replace docstring
code.co_names, code.co_varnames, code.co_filename,
code.co_name, code.co_firstlineno, code.co_lnotab)
f = new.function(nc, gbl, name)
m = new.instancemethod(f, cmd, cliclass)
setattr(cmd, name, m)
cmd._setup(obj, "Object:%s> " % (obj.__class__.__name__,))
return cmd
示例3: get_generic_cmd
# 需要导入模块: import code [as 别名]
# 或者: from code import co_filename [as 别名]
def get_generic_cmd(obj, ui, cliclass=GenericCLI, aliases=None, gbl=None):
"""get a GenericCLI (or other) command set wrapping any class instance
object. The wrapped objects public methods have CLI command counterparts
automatically created."""
import new
from pycopia.methodholder import MethodHolder
cmd = cliclass(ui, aliases)
if gbl is None:
gbl = globals()
hashfilter = {}
for name in _get_methodnames(obj):
if hasattr(cmd, name):
continue # don't override already defined methods
# all this mess does is introspect the object methods and map it to a CLI
# object method of the same name, with a docstring showing the attributes
# and their default values, and the actual code mirroring the
# _generic_call method in the GenericCLI class.
else:
obj_meth = getattr(obj, name)
if id(obj_meth.__func__) in hashfilter: # filter out aliases
continue
else:
hashfilter[id(obj_meth.__func__)] = True
mh = MethodHolder(obj_meth)
doc = "%s *\n%s" % (mh, obj_meth.__doc__ or "")
code = cliclass._generic_call.func_code
nc = new.code(code.co_argcount, code.co_nlocals, code.co_stacksize,
code.co_flags, code.co_code,
(doc,)+code.co_consts[1:], # replace docstring
code.co_names, code.co_varnames, code.co_filename,
code.co_name, code.co_firstlineno, code.co_lnotab)
f = new.function(nc, gbl, name)
m = new.instancemethod(f, cmd, cliclass)
setattr(cmd, name, m)
cmd._setup(obj, "Object:%s> " % (obj.__class__.__name__,))
return cmd
示例4: user_line
# 需要导入模块: import code [as 别名]
# 或者: from code import co_filename [as 别名]
def user_line(self, frame):
"""This function is called when we stop or break at this line."""
if self._wait_for_mainpyfile:
if (self.mainpyfile != self.canonic(frame.f_code.co_filename)
or frame.f_lineno <= 0):
return
self._wait_for_mainpyfile = False
if self.bp_commands(frame):
self.interaction(frame, None)
示例5: defaultFile
# 需要导入模块: import code [as 别名]
# 或者: from code import co_filename [as 别名]
def defaultFile(self):
"""Produce a reasonable default."""
filename = self.curframe.f_code.co_filename
if filename == '<string>' and self.mainpyfile:
filename = self.mainpyfile
return filename
示例6: do_longlist
# 需要导入模块: import code [as 别名]
# 或者: from code import co_filename [as 别名]
def do_longlist(self, arg):
"""longlist | ll
List the whole source code for the current function or frame.
"""
filename = self.curframe.f_code.co_filename
breaklist = self.get_file_breaks(filename)
try:
lines, lineno = getsourcelines(self.curframe)
except OSError as err:
self.error(err)
return
self._print_lines(lines, lineno, breaklist, self.curframe)
示例7: do_list
# 需要导入模块: import code [as 别名]
# 或者: from code import co_filename [as 别名]
def do_list(self, arg):
"""l(ist) [first [,last] | .]
List source code for the current file. Without arguments,
list 11 lines around the current line or continue the previous
listing. With . as argument, list 11 lines around the current
line. With one argument, list 11 lines starting at that line.
With two arguments, list the given range; if the second
argument is less than the first, it is a count.
The current line in the current frame is indicated by "->".
If an exception is being debugged, the line where the
exception was originally raised or propagated is indicated by
">>", if it differs from the current line.
"""
self.lastcmd = 'list'
last = None
if arg and arg != '.':
try:
if ',' in arg:
first, last = arg.split(',')
first = int(first.strip())
last = int(last.strip())
if last < first:
# assume it's a count
last = first + last
else:
first = int(arg.strip())
first = max(1, first - 5)
except ValueError:
self.error('Error in argument: %r' % arg)
return
elif self.lineno is None or arg == '.':
first = max(1, self.curframe.f_lineno - 5)
else:
first = self.lineno + 1
if last is None:
last = first + 10
filename = self.curframe.f_code.co_filename
breaklist = self.get_file_breaks(filename)
try:
lines = linecache.getlines(filename, self.curframe.f_globals)
self._print_lines(lines[first-1:last], first, breaklist,
self.curframe)
self.lineno = min(last, len(lines))
if len(lines) < last:
self.message('[EOF]')
except KeyboardInterrupt:
pass