MCPcopy Index your code
hub / github.com/python/cpython / _resolve_samefile

Function _resolve_samefile

Tools/c-analyzer/c_parser/preprocessor/__init__.py:179–199  ·  view source on GitHub ↗
(filename, pattern, suffix)

Source from the content-addressed store, hash-verified

177
178
179def _resolve_samefile(filename, pattern, suffix):
180 if pattern == filename:
181 return None
182 if pattern.endswith(os.path.sep):
183 pattern += f'*{suffix}'
184 assert os.path.normpath(pattern) == pattern, (pattern,)
185 if '*' in os.path.dirname(pattern):
186 raise NotImplementedError((filename, pattern))
187 if '*' not in os.path.basename(pattern):
188 return pattern
189
190 common = os.path.commonpath([filename, pattern])
191 relpattern = pattern[len(common) + len(os.path.sep):]
192 relpatterndir = os.path.dirname(relpattern)
193 relfile = filename[len(common) + len(os.path.sep):]
194 if os.path.basename(pattern) == '*':
195 return os.path.join(common, relpatterndir, relfile)
196 elif os.path.basename(relpattern) == '*' + suffix:
197 return os.path.join(common, relpatterndir, relfile)
198 else:
199 raise NotImplementedError((filename, pattern))
200
201
202@contextlib.contextmanager

Callers 1

_resolve_samefilesFunction · 0.85

Calls 4

endswithMethod · 0.45
dirnameMethod · 0.45
basenameMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…