Python inspect.getsourcefile() Examples
The following are 30
code examples of inspect.getsourcefile().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
inspect
, or try the search function
.
Example #1
Source File: yacc.py From pyhcl with Mozilla Public License 2.0 | 6 votes |
def validate_modules(self): # Match def p_funcname( fre = re.compile(r'\s*def\s+(p_[a-zA-Z_0-9]*)\(') for module in self.modules: try: lines, linen = inspect.getsourcelines(module) except IOError: continue counthash = {} for linen, line in enumerate(lines): linen += 1 m = fre.match(line) if m: name = m.group(1) prev = counthash.get(name) if not prev: counthash[name] = linen else: filename = inspect.getsourcefile(module) self.log.warning('%s:%d: Function %s redefined. Previously defined on line %d', filename, linen, name, prev) # Get the start symbol
Example #2
Source File: tbtools.py From recruit with Apache License 2.0 | 6 votes |
def __init__(self, exc_type, exc_value, tb): self.lineno = tb.tb_lineno self.function_name = tb.tb_frame.f_code.co_name self.locals = tb.tb_frame.f_locals self.globals = tb.tb_frame.f_globals fn = inspect.getsourcefile(tb) or inspect.getfile(tb) if fn[-4:] in (".pyo", ".pyc"): fn = fn[:-1] # if it's a file on the file system resolve the real filename. if os.path.isfile(fn): fn = os.path.realpath(fn) self.filename = to_unicode(fn, get_filesystem_encoding()) self.module = self.globals.get("__name__") self.loader = self.globals.get("__loader__") self.code = tb.tb_frame.f_code # support for paste's traceback extensions self.hide = self.locals.get("__traceback_hide__", False) info = self.locals.get("__traceback_info__") if info is not None: info = to_unicode(info, "utf-8", "replace") self.info = info
Example #3
Source File: yacc.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def validate_modules(self): # Match def p_funcname( fre = re.compile(r'\s*def\s+(p_[a-zA-Z_0-9]*)\(') for module in self.modules: try: lines, linen = inspect.getsourcelines(module) except IOError: continue counthash = {} for linen, line in enumerate(lines): linen += 1 m = fre.match(line) if m: name = m.group(1) prev = counthash.get(name) if not prev: counthash[name] = linen else: filename = inspect.getsourcefile(module) self.log.warning('%s:%d: Function %s redefined. Previously defined on line %d', filename, linen, name, prev) # Get the start symbol
Example #4
Source File: conf.py From mplhep with MIT License | 6 votes |
def linkcode_resolve(domain, info): if domain != "py": return None if not info["module"]: return None mod = importlib.import_module(info["module"]) modpath = [p for p in sys.path if mod.__file__.startswith(p)] if len(modpath) < 1: raise RuntimeException("Cannot deduce module path") modpath = modpath[0] obj = reduce(getattr, [mod] + info["fullname"].split(".")) try: path = inspect.getsourcefile(obj) relpath = path[len(modpath) + 1 :] _, lineno = inspect.getsourcelines(obj) except TypeError: # skip property or other type that inspect doesn't like return None return "http://github.com/scikit-hep/mplhep/blob/{}/{}#L{}".format( githash, relpath, lineno )
Example #5
Source File: yacc.py From misp42splunk with GNU Lesser General Public License v3.0 | 6 votes |
def validate_modules(self): # Match def p_funcname( fre = re.compile(r'\s*def\s+(p_[a-zA-Z_0-9]*)\(') for module in self.modules: try: lines, linen = inspect.getsourcelines(module) except IOError: continue counthash = {} for linen, line in enumerate(lines): linen += 1 m = fre.match(line) if m: name = m.group(1) prev = counthash.get(name) if not prev: counthash[name] = linen else: filename = inspect.getsourcefile(module) self.log.warning('%s:%d: Function %s redefined. Previously defined on line %d', filename, linen, name, prev) # Get the start symbol
Example #6
Source File: conf.py From python-sdc-client with MIT License | 6 votes |
def linkcode_resolve(domain, info): def find_line(): obj = sys.modules[info['module']] for part in info['fullname'].split('.'): obj = getattr(obj, part) import inspect fn = inspect.getsourcefile(obj) source, lineno = inspect.findsource(obj) return lineno + 1 if domain != 'py' or not info['module']: return None #tag = 'master' if 'dev' in release else ('v' + release) url = "https://github.com/draios/python-sdc-client/blob/master/sdcclient/_client.py" try: return url + '#L%d' % find_line() except Exception: return url
Example #7
Source File: yacc.py From zxbasic with GNU General Public License v3.0 | 6 votes |
def validate_modules(self): # Match def p_funcname( fre = re.compile(r'\s*def\s+(p_[a-zA-Z_0-9]*)\(') for module in self.modules: try: lines, linen = inspect.getsourcelines(module) except IOError: continue counthash = {} for linen, line in enumerate(lines): linen += 1 m = fre.match(line) if m: name = m.group(1) prev = counthash.get(name) if not prev: counthash[name] = linen else: filename = inspect.getsourcefile(module) self.log.warning('%s:%d: Function %s redefined. Previously defined on line %d', filename, linen, name, prev) # Get the start symbol
Example #8
Source File: md_autogen.py From markdown-apidocs with MIT License | 6 votes |
def get_src_path(self, obj, append_base=True): """Creates a src path string with line info for use as markdown link. """ path = getsourcefile(obj) if not self.src_root in path: # this can happen with e.g. # inlinefunc-wrapped functions if hasattr(obj, "__module__"): path = "%s.%s" % (obj.__module__, obj.__name__) else: path = obj.__name__ path = path.replace(".", "/") pre, post = path.rsplit(self.src_root + "/", 1) lineno = self.get_line_no(obj) lineno = "" if lineno is None else "#L{}".format(lineno) path = self.src_root + "/" + post + lineno if append_base: path = os.path.join(self.github_link, path) return path
Example #9
Source File: test_bench.py From pyspider with Apache License 2.0 | 6 votes |
def test_10_bench(self): import subprocess #cmd = [sys.executable] cmd = ['coverage', 'run'] p = subprocess.Popen(cmd+[ inspect.getsourcefile(run), '--queue-maxsize=0', 'bench', '--total=500' ], close_fds=True, stderr=subprocess.PIPE) stdout, stderr = p.communicate() stderr = utils.text(stderr) print(stderr) self.assertEqual(p.returncode, 0, stderr) self.assertIn('Crawled', stderr) self.assertIn('Fetched', stderr) self.assertIn('Processed', stderr) self.assertIn('Saved', stderr)
Example #10
Source File: _util.py From myhdl with GNU Lesser General Public License v2.1 | 6 votes |
def _makeAST(f): # Need to look at the flags used to compile the original function f and # pass these same flags to the compile() function. This ensures that # syntax-changing __future__ imports like print_function work correctly. orig_f_co_flags = f.__code__.co_flags # co_flags can contain various internal flags that we can't pass to # compile(), so strip them out here valid_flags = 0 for future_feature in __future__.all_feature_names: feature = getattr(__future__, future_feature) valid_flags |= feature.compiler_flag s = inspect.getsource(f) s = _dedent(s) # use compile instead of ast.parse so that additional flags can be passed flags = ast.PyCF_ONLY_AST | (orig_f_co_flags & valid_flags) tree = compile(s, filename='<unknown>', mode='exec', flags=flags, dont_inherit=True) # tree = ast.parse(s) tree.sourcefile = inspect.getsourcefile(f) tree.lineoffset = inspect.getsourcelines(f)[1] - 1 return tree
Example #11
Source File: test_Target.py From wifite2mod with GNU General Public License v2.0 | 5 votes |
def getTargets(self, filename): ''' Helper method to parse targets from filename ''' import os, inspect this_file = os.path.abspath(inspect.getsourcefile(TestTarget.getTargets)) this_dir = os.path.dirname(this_file) csv_file = os.path.join(this_dir, 'files', filename) # Load targets from CSV file return Airodump.get_targets_from_csv(csv_file)
Example #12
Source File: test_inspect.py From BinderFilter with MIT License | 5 votes |
def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) with open(inspect.getsourcefile(self.fodderFile)) as fp: self.source = fp.read()
Example #13
Source File: test_inspect.py From oss-ftp with MIT License | 5 votes |
def test_getmodule_recursion(self): from types import ModuleType name = '__inspect_dummy' m = sys.modules[name] = ModuleType(name) m.__file__ = "<string>" # hopefully not a real filename... m.__loader__ = "dummy" # pretend the filename is understood by a loader exec "def x(): pass" in m.__dict__ self.assertEqual(inspect.getsourcefile(m.x.func_code), '<string>') del sys.modules[name] inspect.getmodule(compile('a=10','','single'))
Example #14
Source File: test_inspect.py From oss-ftp with MIT License | 5 votes |
def test_getsourcefile(self): self.assertEqual(inspect.getsourcefile(mod.spam), modfile) self.assertEqual(inspect.getsourcefile(git.abuse), modfile) fn = "_non_existing_filename_used_for_sourcefile_test.py" co = compile("None", fn, "exec") self.assertEqual(inspect.getsourcefile(co), None) linecache.cache[co.co_filename] = (1, None, "None", co.co_filename) self.assertEqual(inspect.getsourcefile(co), fn)
Example #15
Source File: tbtools.py From RSSNewsGAE with Apache License 2.0 | 5 votes |
def __init__(self, exc_type, exc_value, tb): self.lineno = tb.tb_lineno self.function_name = tb.tb_frame.f_code.co_name self.locals = tb.tb_frame.f_locals self.globals = tb.tb_frame.f_globals fn = inspect.getsourcefile(tb) or inspect.getfile(tb) if fn[-4:] in ('.pyo', '.pyc'): fn = fn[:-1] # if it's a file on the file system resolve the real filename. if os.path.isfile(fn): fn = os.path.realpath(fn) self.filename = to_unicode(fn, get_filesystem_encoding()) self.module = self.globals.get('__name__') self.loader = self.globals.get('__loader__') self.code = tb.tb_frame.f_code # support for paste's traceback extensions self.hide = self.locals.get('__traceback_hide__', False) info = self.locals.get('__traceback_info__') if info is not None: try: info = text_type(info) except UnicodeError: info = str(info).decode('utf-8', 'replace') self.info = info
Example #16
Source File: test_inspect.py From BinderFilter with MIT License | 5 votes |
def test_getmodule_recursion(self): from types import ModuleType name = '__inspect_dummy' m = sys.modules[name] = ModuleType(name) m.__file__ = "<string>" # hopefully not a real filename... m.__loader__ = "dummy" # pretend the filename is understood by a loader exec "def x(): pass" in m.__dict__ self.assertEqual(inspect.getsourcefile(m.x.func_code), '<string>') del sys.modules[name] inspect.getmodule(compile('a=10','','single'))
Example #17
Source File: test_inspect.py From BinderFilter with MIT License | 5 votes |
def test_getsourcefile(self): self.assertEqual(inspect.getsourcefile(mod.spam), modfile) self.assertEqual(inspect.getsourcefile(git.abuse), modfile) fn = "_non_existing_filename_used_for_sourcefile_test.py" co = compile("None", fn, "exec") self.assertEqual(inspect.getsourcefile(co), None) linecache.cache[co.co_filename] = (1, None, "None", co.co_filename) self.assertEqual(inspect.getsourcefile(co), fn)
Example #18
Source File: conf.py From TensorVision with MIT License | 5 votes |
def linkcode_resolve(domain, info): def find_source(): # try to find the file and line number, based on code from numpy: # https://github.com/numpy/numpy/blob/master/doc/source/conf.py#L286 obj = sys.modules[info['module']] for part in info['fullname'].split('.'): obj = getattr(obj, part) import inspect import os fn = inspect.getsourcefile(obj) fn = os.path.relpath(fn, start=os.path.dirname(tensorvision.__file__)) source, lineno = inspect.getsourcelines(obj) return fn, lineno, lineno + len(source) - 1 if domain != 'py' or not info['module']: return None try: filename = 'tensorvision/%s#L%d-L%d' % find_source() except Exception: filename = info['module'].replace('.', '/') + '.py' tag = 'master' if 'dev' in release else ('v' + release) return "https://github.com/TensorVision/TensorVision/blob/%s/%s" % (tag, filename) # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes.
Example #19
Source File: test_inspect.py From ironpython2 with Apache License 2.0 | 5 votes |
def test_getsourcefile(self): self.assertEqual(inspect.getsourcefile(mod.spam), modfile) self.assertEqual(inspect.getsourcefile(git.abuse), modfile) fn = "_non_existing_filename_used_for_sourcefile_test.py" co = compile("None", fn, "exec") self.assertEqual(inspect.getsourcefile(co), None) linecache.cache[co.co_filename] = (1, None, "None", co.co_filename) self.assertEqual(inspect.getsourcefile(co), fn)
Example #20
Source File: test_inspect.py From ironpython2 with Apache License 2.0 | 5 votes |
def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) with open(inspect.getsourcefile(self.fodderFile)) as fp: self.source = fp.read()
Example #21
Source File: docstring.py From gpkit with MIT License | 5 votes |
def __call__(self, function): # pylint:disable=too-many-locals orig_lines, lineno = inspect.getsourcelines(function) indent_length = 0 while orig_lines[1][indent_length] in [" ", "\t"]: indent_length += 1 first_indent_length = indent_length setup_lines = 1 while "):" not in orig_lines[setup_lines]: setup_lines += 1 next_indented_idx = setup_lines + 1 # get the next indented line while len(orig_lines[next_indented_idx]) <= indent_length + 1: next_indented_idx += 1 while orig_lines[next_indented_idx][indent_length] in [" ", "\t"]: indent_length += 1 second_indent = orig_lines[next_indented_idx][:indent_length] parse_lines = [second_indent + line + "\n" for line in parse_varstring(self.string).split("\n")] parse_lines += [second_indent + '# (@parse_variables spacer line)\n'] parse_lines += [second_indent + '# (setup spacer line)\n']*setup_lines # make ast of these new lines, insert it into the original ast new_lines = (orig_lines[1:setup_lines+1] + parse_lines + orig_lines[setup_lines+1:]) new_src = "\n".join([l[first_indent_length:-1] for l in new_lines if "#" not in l[:first_indent_length]]) new_ast = ast.parse(new_src, "<parse_variables>") ast.increment_lineno(new_ast, n=lineno-len(parse_lines)) code = compile(new_ast, inspect.getsourcefile(function), "exec", dont_inherit=True) # don't inherit __future__ from here out = {} exec(code, self.scopevars, out) # pylint: disable=exec-used return out[function.__name__]
Example #22
Source File: source.py From python-netsurv with MIT License | 5 votes |
def getfslineno(obj): """ Return source location (path, lineno) for the given object. If the source cannot be determined return ("", -1) """ try: code = py.code.Code(obj) except TypeError: try: fn = (inspect.getsourcefile(obj) or inspect.getfile(obj)) except TypeError: return "", -1 fspath = fn and py.path.local(fn) or None lineno = -1 if fspath: try: _, lineno = findsource(obj) except IOError: pass else: fspath = code.path lineno = code.firstlineno assert isinstance(lineno, int) return fspath, lineno # # helper functions #
Example #23
Source File: model_registry.py From lingvo with Apache License 2.0 | 5 votes |
def _GetSourceInfo(cls, src_cls): """Gets a source info string given a source class.""" return '%s@%s:%d' % (cls._ModelParamsClassKey(src_cls), inspect.getsourcefile(src_cls), inspect.getsourcelines(src_cls)[-1])
Example #24
Source File: base.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 5 votes |
def add_fileline_to_docstring(module, incursive=True): """Append the definition position to each function contained in module. Examples -------- # Put the following codes at the end of a file add_fileline_to_docstring(__name__) """ def _add_fileline(obj): """Add fileinto to a object. """ if obj.__doc__ is None or 'From:' in obj.__doc__: return fname = inspect.getsourcefile(obj) if fname is None: return try: line = inspect.getsourcelines(obj)[-1] except IOError: return obj.__doc__ += '\n\nFrom:%s:%d' % (fname, line) if isinstance(module, str): module = sys.modules[module] for _, obj in inspect.getmembers(module): if inspect.isbuiltin(obj): continue if inspect.isfunction(obj): _add_fileline(obj) if inspect.ismethod(obj): _add_fileline(obj.__func__) if inspect.isclass(obj) and incursive: add_fileline_to_docstring(obj, False)
Example #25
Source File: source.py From python-netsurv with MIT License | 5 votes |
def getfslineno(obj): """ Return source location (path, lineno) for the given object. If the source cannot be determined return ("", -1). The line number is 0-based. """ from .code import Code try: code = Code(obj) except TypeError: try: fn = inspect.getsourcefile(obj) or inspect.getfile(obj) except TypeError: return "", -1 fspath = fn and py.path.local(fn) or None lineno = -1 if fspath: try: _, lineno = findsource(obj) except IOError: pass else: fspath = code.path lineno = code.firstlineno assert isinstance(lineno, int) return fspath, lineno # # helper functions #
Example #26
Source File: test_Handshake.py From wifite2mod with GNU General Public License v2.0 | 5 votes |
def getFile(self, filename): ''' Helper method to parse targets from filename ''' import os, inspect this_file = os.path.abspath(inspect.getsourcefile(self.getFile)) this_dir = os.path.dirname(this_file) return os.path.join(this_dir, 'files', filename)
Example #27
Source File: test_Airodump.py From wifite2mod with GNU General Public License v2.0 | 5 votes |
def getFile(self, filename): ''' Helper method to parse targets from filename ''' import os, inspect this_file = os.path.abspath(inspect.getsourcefile(self.getFile)) this_dir = os.path.dirname(this_file) return os.path.join(this_dir, 'files', filename)
Example #28
Source File: tbtools.py From lambda-packs with MIT License | 5 votes |
def __init__(self, exc_type, exc_value, tb): self.lineno = tb.tb_lineno self.function_name = tb.tb_frame.f_code.co_name self.locals = tb.tb_frame.f_locals self.globals = tb.tb_frame.f_globals fn = inspect.getsourcefile(tb) or inspect.getfile(tb) if fn[-4:] in ('.pyo', '.pyc'): fn = fn[:-1] # if it's a file on the file system resolve the real filename. if os.path.isfile(fn): fn = os.path.realpath(fn) self.filename = to_unicode(fn, get_filesystem_encoding()) self.module = self.globals.get('__name__') self.loader = self.globals.get('__loader__') self.code = tb.tb_frame.f_code # support for paste's traceback extensions self.hide = self.locals.get('__traceback_hide__', False) info = self.locals.get('__traceback_info__') if info is not None: try: info = text_type(info) except UnicodeError: info = str(info).decode('utf-8', 'replace') self.info = info
Example #29
Source File: source.py From python-netsurv with MIT License | 5 votes |
def getfslineno(obj): """ Return source location (path, lineno) for the given object. If the source cannot be determined return ("", -1) """ try: code = py.code.Code(obj) except TypeError: try: fn = (inspect.getsourcefile(obj) or inspect.getfile(obj)) except TypeError: return "", -1 fspath = fn and py.path.local(fn) or None lineno = -1 if fspath: try: _, lineno = findsource(obj) except IOError: pass else: fspath = code.path lineno = code.firstlineno assert isinstance(lineno, int) return fspath, lineno # # helper functions #
Example #30
Source File: source.py From python-netsurv with MIT License | 5 votes |
def getfslineno(obj): """ Return source location (path, lineno) for the given object. If the source cannot be determined return ("", -1). The line number is 0-based. """ from .code import Code try: code = Code(obj) except TypeError: try: fn = inspect.getsourcefile(obj) or inspect.getfile(obj) except TypeError: return "", -1 fspath = fn and py.path.local(fn) or None lineno = -1 if fspath: try: _, lineno = findsource(obj) except IOError: pass else: fspath = code.path lineno = code.firstlineno assert isinstance(lineno, int) return fspath, lineno # # helper functions #