You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
python-minifier does a few checks to ensure that it's safe to minify variables. I've gathered a short list of things which should probably be checked for, along with the checks that already exist. This won't entirely prevent problems with identifier minifying, but it will prevent many of the more-common gotcha's.
builtins:
These can be checked for in the same way that locals(), globals(), and the rest are checked for.
locals (already checked for)
globals (already checked for)
getattr
setattr
dir
vars (already checked for)
compile
eval (already checked for)
exec (already checked for)
imported modules:
These can be checked for by checking which modules are listed in import statements.
__main__
traceback
inspect
symtable
dis
bdb
pdb
trace
global (module-level) dunders:
__getattr__
__dir__
__all__
dunder attributes:
.__getattribute__
.__getattr__
.__setattr__
.__dict__
.__dir__
.__code__ (on function objects)
frame-object attributes:
.f_locals
.f_globals
.f_builtins
.f_code
specific things from modules:
sys.settrace
sys._getframe
operator.attrgetter
operator.methodcaller
The text was updated successfully, but these errors were encountered:
python-minifier does a few checks to ensure that it's safe to minify variables. I've gathered a short list of things which should probably be checked for, along with the checks that already exist. This won't entirely prevent problems with identifier minifying, but it will prevent many of the more-common gotcha's.
builtins:
These can be checked for in the same way that
locals()
,globals()
, and the rest are checked for.locals
(already checked for)globals
(already checked for)getattr
setattr
dir
vars
(already checked for)compile
eval
(already checked for)exec
(already checked for)imported modules:
These can be checked for by checking which modules are listed in
import
statements.__main__
traceback
inspect
symtable
dis
bdb
pdb
trace
global (module-level) dunders:
__getattr__
__dir__
__all__
dunder attributes:
.__getattribute__
.__getattr__
.__setattr__
.__dict__
.__dir__
.__code__
(on function objects)frame-object attributes:
.f_locals
.f_globals
.f_builtins
.f_code
specific things from modules:
sys.settrace
sys._getframe
operator.attrgetter
operator.methodcaller
The text was updated successfully, but these errors were encountered: