Lines Matching +full:- +full:filename
3 This is intended to read lines from modules imported -- hence if a filename
21 def getline(filename, lineno, module_globals=None): argument
25 lines = getlines(filename, module_globals)
27 return lines[lineno - 1]
31 def getlines(filename, module_globals=None): argument
35 if filename in cache:
36 entry = cache[filename]
38 return cache[filename][2]
41 return updatecache(filename, module_globals)
47 def checkcache(filename=None): argument
51 if filename is None:
53 elif filename in cache:
54 filenames = [filename]
58 for filename in filenames:
59 entry = cache[filename]
65 continue # no-op for files loaded via a __loader__
74 cache.pop(filename, None)
77 cache.pop(filename, None)
80 def updatecache(filename, module_globals=None): argument
92 if filename in cache:
93 if len(cache[filename]) != 1:
94 cache.pop(filename, None)
95 if not filename or (filename.startswith('<') and filename.endswith('>')):
98 fullname = filename
102 basename = filename
106 if lazycache(filename, module_globals):
108 data = cache[filename][0]()
116 cache[filename] = (
122 return cache[filename][2]
125 # when handling a relative filename.
126 if os.path.isabs(filename):
133 # Not sufficiently string-like to do anything useful with.
151 elif not lines[-1].endswith('\n'):
152 lines[-1] += '\n'
154 cache[filename] = size, mtime, lines, fullname
158 def lazycache(filename, module_globals): argument
159 """Seed the cache for filename with module_globals.
168 get_source method must be found, the filename must be a cacheable
169 filename, and the filename must not be already cached.
171 if filename in cache:
172 if len(cache[filename]) == 1:
176 if not filename or (filename.startswith('<') and filename.endswith('>')):
190 cache[filename] = (get_lines,)