Merge branch 'development' of https://github.com/Annihilator708/Sebi-Machine into development
This commit is contained in:
commit
b7b40fdcbc
@ -3,6 +3,7 @@
|
||||
"""
|
||||
IO stuff.
|
||||
"""
|
||||
import copy
|
||||
import inspect
|
||||
import os
|
||||
|
||||
@ -45,10 +46,17 @@ def in_here(first_path_bit: str, *path_bits: str, stack_depth: int=0) -> str:
|
||||
module = inspect.getmodule(frame[0])
|
||||
assert hasattr(module, '__file__'), 'No `__file__\' attr, welp.'
|
||||
|
||||
# https://docs.python.org/3/library/inspect.html#the-interpreter-stack
|
||||
# If Python caches strings rather than copying when we move them
|
||||
# around or modify them, then this may cause a referential cycle which
|
||||
# will consume more memory and stop the garbage collection system
|
||||
# from working correctly. Best thing to do here is deepcopy anything
|
||||
# we need and prevent this occuring. Del the references to allow them
|
||||
# to be freed.
|
||||
file = module.__file__
|
||||
|
||||
file = copy.deepcopy(file)
|
||||
del module, frame
|
||||
dir_name = os.path.dirname(file)
|
||||
abs_dir_name = os.path.abspath(dir_name)
|
||||
|
||||
pathish = os.path.join(abs_dir_name, first_path_bit, *path_bits)
|
||||
return pathish
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user