fix-traceback.patch 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. commit 8a9d74e955c9e66e23ca423181d6b4f3b2f35234
  2. merge: 69071b279955ab8dd08fad10b2540b9f6bae2825 efd33904df73f0175583058fedc0d7234cac6b45
  3. author: orivej
  4. date: 2019-07-06T14:14:55+03:00
  5. revision: 5216942
  6. Fix tracebacks in py2 import_test and do not read builtin source from FS. DEVTOOLS-5629
  7. REVIEW: 869505
  8. Note: mandatory check (NEED_CHECK) was skipped
  9. --- contrib/tools/python3/Lib/linecache.py (69071b279955ab8dd08fad10b2540b9f6bae2825)
  10. +++ contrib/tools/python3/Lib/linecache.py (8a9d74e955c9e66e23ca423181d6b4f3b2f35234)
  11. @@ -88,6 +88,18 @@ def updatecache(filename, module_globals=None):
  12. if not filename or (filename.startswith('<') and filename.endswith('>')):
  13. return []
  14. + if not os.path.isabs(filename):
  15. + # Do not read builtin code from the filesystem.
  16. + import __res
  17. +
  18. + key = __res.py_src_key(filename)
  19. + if data := __res.resfs_read(key):
  20. + assert data is not None, filename
  21. + data = data.decode('UTF-8')
  22. + lines = [line + '\n' for line in data.splitlines()]
  23. + cache[filename] = (len(data), None, lines, filename)
  24. + return cache[filename][2]
  25. +
  26. fullname = filename
  27. try:
  28. stat = os.stat(fullname)