[Python-Dev] Handling of sys.args (Re: User's complaints)
Nick Coghlan
ncoghlan at gmail.com
Fri Jul 14 12:09:02 CEST 2006
Greg Ewing wrote:
> Maybe sys needs to be split into two modules, with
> the non-sensitive one pre-imported (so that the
> importless interpreter you suggest wouldn't be
> unnecessarily crippled).
Maybe not splitting it, but providing a read-only mechanism of getting at
certain elements, with "import sys" still being the way of *modifying* any of
these things.
Relatively safe items (could be provided as attributes and methods of a
read-only class instance in builtins instead of as a module):
argv (as a tuple instead of a list)
byteorder
maxint
maxunicode
builtin_module_names
copyright
exc_info()
exec_prefix
executable
exit([arg])
getdefaultencoding()
getfilesystemencoding()
getwindowsversion()
hexversion
platform
prefix
stdin
stdout
stderr
version
version_info
winver
Arguably privileged information (no real reason for non-privileged code to
know this stuff):
subversion
getcheckinterval()
getdlopenflags()
dllhandle
_current_frames()
getrefcount(object)
getrecursionlimit()
_getframe([depth])
__displayhook__
__excepthook__
__stdin__
__stdout__
__stderr__
api_version
warnoptions
tracebacklimit
displayhook(value)
excepthook(type, value, traceback)
ps1
ps2
Definitely privileged operations:
Actually *setting* any of the above to something different
modules
path
exc_clear()
setcheckinterval(interval)
setdefaultencoding(name)
setdlopenflags(n)
setprofile(profilefunc)
setrecursionlimit(limit)
settrace(tracefunc)
settscdump(on_flag)
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://www.boredomandlaziness.org
More information about the Python-Dev
mailing list