Files
OpenBB/build/pyinstaller/hooks/hook-inspect.py
James Simmons c7d0c98aa8 Fixing reports on installers (#3623)
* adding hook

* forgot to add if statement

Co-authored-by: Chavithra <chavithra@gmail.com>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
2022-11-28 13:21:22 -05:00

40 lines
1.5 KiB
Python

# Runtime hook copied from pyinstaller
import inspect
import os
import sys
# pylint:disable=W0622,W0212,E1101
_orig_inspect_getsourcefile = inspect.getsourcefile
# Provide custom implementation of inspect.getsourcefile() for frozen applications that properly resolves relative
# filenames obtained from object (e.g., inspect stack-frames). See #5963.
def _pyi_getsourcefile(object):
filename = inspect.getfile(object)
if not os.path.isabs(filename):
# Check if given filename matches the basename of __main__'s __file__.
if hasattr(sys.modules["__main__"], "__file__"):
main_file = sys.modules["__main__"].__file__
if filename == os.path.basename(main_file):
return main_file
# If filename ends with .py suffix and does not correspond to frozen entry-point script, convert it to
# corresponding .pyc in sys._MEIPASS.
if filename.endswith(".py"):
filename = os.path.normpath(os.path.join(sys._MEIPASS, filename + "c"))
# Ensure the relative path did not try to jump out of sys._MEIPASS, just in case...
if filename.startswith(sys._MEIPASS):
return filename
elif filename.startswith(sys._MEIPASS) and filename.endswith(".pyc"):
# If filename is already PyInstaller-compatible, prevent any further processing (i.e., with original
# implementation).
return filename
# Use original implementation as a fallback.
return _orig_inspect_getsourcefile(object)
inspect.getsourcefile = _pyi_getsourcefile